38

无法使用提供程序“RsaProtectedConfigurationProvider”加密“connectionStrings”部分。来自提供者的错误消息:对象已经存在。

我遵循了http://msdn.microsoft.com/en-us/library/2w117ede.aspx中的指南,但在授予 ASP.NET 身份访问 RSA 密钥容器的第 3 步中,它说我的身份是我的工作组\用户名,但我的 web.config 文件中没有模拟

我正在使用我的机器使用 asp_regiis 加密 web.config,然后使用 Visual Studio 进行调试,然后出现此错误

4

3 回答 3

77

要使用RsaProtectedConfigurationProvider,您需要以管理员身份启动命令提示符或 Visual Studio 。

对于DataProtectionConfigurationProvider,它不需要在管理员权限下运行。

于 2014-05-08T08:32:56.680 回答
3

您可以使用 RsaProtectedConfigurationProvider 创建自己的提供程序来加密您的 web.xml,而无需管理员权限。

  1. 创建密钥库:

    aspnet_regiis -pc "MyKeyStore" -exp

  2. 为任何用户授予读取权限:

    aspnet_regiis -pa "MyKeyStore" "域/用户"

  3. 在您的 web.config 中放置一个提供程序部分

    <configProtectedData>
    <providers>
        <add name="MyRSAProvider" type="System.Configuration.RsaProtectedConfigurationProvider,System.Configuration, Version=2.0.0.0, Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"keyContainerName="MyKeyStore"useMachineContainer="true" />
    </providers>
    </configProtectedData>
    
  4. 加密您的配置部分:

    aspnet_regiis -pef "configSection" "c:\pathToWebConf" -prov "MyRSAProvider"

资料来源:

创建 RSA 密钥容器和提供程序

加密配置

于 2017-07-27T10:11:19.630 回答
0

这发生在我的一台服务器上,整个服务器试图将 Web 应用程序从 c 驱动器移动到另一个驱动器。

因为我已经加密了驱动器 C 上的 web.config 部分并将其移动到另一个驱动器,所以它阻塞了提供程序,导致它无法加密该部分,因为它认为它已经存在。

我仍在努力修复它。

于 2019-01-22T19:11:33.193 回答