“aspnet_regiis -pa”不起作用

“aspnet_regiis -pa”不起作用

我使用受保护的配置来存储敏感数据,这些数据已加密存储在我们的 asp.net 应用程序的 Web.config 文件中。
我已按照以下步骤操作演练:创建和导出 RSA 密钥容器生成并导出私钥。
我已按照演练:使用受保护的配置加密配置信息使用该密钥加密 Web.config 文件的一部分。

我的问题是由于命令的奇怪行为,我无法在测试环境中使用该密钥aspnet_regiis

能够让这个东西在运行 Windows 8 的同事的计算机上运行。aspnet_regiis -pi命令(导入私钥)和aspnet_regiis -pa(授予对私钥的访问权限)都可以在那里正常运行。

在运行 Windows 7 的测试环境中,我能够使用 成功将私钥导入密钥容器aspnet_regiis -pi <KeyContainer> <KeyFile>
但是当我尝试 时aspnet_regiis -pa <KeyContainer> <account-name>,该命令仅列出其命令行选项。它并不表示失败或成功。

所有这些环境都使用.Net Framework v4。

我看过这个问题,但不同之处在于我能够执行。按照那里的建议aspnet_regiis -pi <KeyContainer> <KeyFile>执行也没有什么不同。aspnet_regiis -lk

问题是:我如何授予应用程序访问密钥容器内容的权限,以便它可以解密 Web.config?为什么 aspnet_regiis 表现得好像“-pa”选项不存在,而不是给我“成功”或“失败”消息?

答案1

事实证明我们使用了错误版本的 aspnet_regiis。

我们从%Windows%\Microsoft.Net\Framework\v4.0.30319目录中调用了 aspnet_regiis。从64 位版本
调用它时,命令报告成功。%Windows%\Microsoft.Net\Framework64\v4.0.30319

尽管如此,错误信息还是会有帮助的......

编辑:
除非您有用户配置文件,否则密钥容器似乎不可用。当我们在另一台服务器上允许使用“以服务登录”的帐户访问密钥容器时,它失败了 - 即使它属于管理员组。当我们以物理方式登录并创建用户配置文件时,密钥容器做过变得可用。

相关内容