2013-03-12 219 views
17

未能使用提供者'RsaProtectedCo nfigurationProvider'加密节'connectionStrings'。来自提供者的错误消息:对象已经存在。未能使用提供者'RsaProtectedConfigurationProvider加密节'connectionStrings'

我跟着指南中http://msdn.microsoft.com/en-us/library/2w117ede.aspx但在步骤3中要授予ASP.NET身份访问RSA密钥容器,它说,我的身份是我的工作组\用户名,我没有冒充我的web.config文件虽然

我使用asp_regiis使用我的机器上使用Visual Studio调试,然后加密的web.config,然后才出现了这个错误

+1

可能Duplicate: [来自其他帖子](http://stackoverflow.com/questions/8344373/encrypting-web-config-using-aspnet-regiis)其实运行CMD作为管理员解决了我的问题呢! – Yash 2013-05-08 20:43:22

+3

以管理员模式启动命令提示符,然后继续。应该解决这个问题。 – Sam 2014-05-07 21:26:26

回答

44

对于使用RsaProtectedConfigurationProvider您需要启动命令提示符或Visual Studio 作为管理员

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

+2

我的经验是,您不能仅以管理帐户登录并启动通用命令提示符。当我这样做时,aspnet_regiis失败。我必须在cmd.exe或Visual Studio命令提示符下实际执行“以管理员身份运行”。然后aspnet_regiis按预期工作。 – kermit 2015-10-18 23:17:44

+0

是的,您需要提升管理员权限,虽然这将取决于您的系统用户设置(因为在某些情况下,登录的管理员不需要提升应用程序)以便对计算机进行这些更改。 – markthewizard1234 2016-08-16 10:02:20

+0

这让我一直都在。 – rageit 2016-08-30 20:12:19

0

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

  1. 创建密钥存储区:

    ASPNET_REGIIS -pc “MyKeyStore” -exp

  2. 授予读取任何用户访问:

    aspnet_regiss -pa “MyKeyStore”“域/用户“

  3. 将供应商部分放到您的web.config中

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

    ASPNET_REGIIS -pef “configSection” “C:\ pathToWebConf” -prov “MyRSAProvider”

来源:

Create RSA key container and provider

Encrypt configuration

相关问题