如何使用aspnet_regiis.exe为多用户加密app.config且无需创建用户组
多用户授权解决方案
方案1:单独执行授权命令
你不需要额外创建用户组,直接对每个需要解密权限的用户单独执行授权命令即可,命令格式和你之前给单个用户授权的逻辑完全一致,仅替换末尾的用户标识即可:
%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -pa MyContainer "DOMAIN\用户名"
如果你的应用运行在32位.NET运行时上,将路径中的Framework64替换为Framework即可。
方案2:批处理批量授权
如果需要授权的用户数量较多,可以通过批处理脚本一次性完成批量授权,操作步骤如下:
- 新建一个名为
user_list.txt的文本文件,将所有需要授权的账号按DOMAIN\用户名的格式填写,一行一个账号。 - 新建一个后缀为
.bat的批处理脚本,写入如下内容:
@echo off :: 替换为你自己的密钥容器名称 set CONTAINER_NAME=MyContainer :: 用户名列表文件路径 set USER_LIST_PATH=user_list.txt for /f "tokens=*" %%u in (%USER_LIST_PATH%) do ( %windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -pa %CONTAINER_NAME% "%%u" echo 已完成对 %%u 的授权 ) echo 所有用户授权操作已完成 pause
- 右键点击批处理脚本,选择「以管理员身份运行」即可自动完成所有用户的授权操作。
注意事项
- 所有授权操作必须使用管理员权限执行,否则会操作失败。
- 如果你使用的是机器级密钥容器,导入密钥时必须加上
-exp参数,否则密钥无法被其他用户访问。 - 如果是本地计算机账号而非域账号,将账号前缀的
DOMAIN\替换为本地计算机名即可,格式为计算机名\本地用户名。
内容的提问来源于stack exchange,提问作者Prasad Gavande
相关产品推荐
相关产品推荐

