代码之家  ›  专栏  ›  技术社区  ›  keyboardP

无法打开RSA密钥容器

  •  14
  • keyboardP  · 技术社区  · 16 年前

    我在运行xphome的旧机器上开发了一个ASP.NET站点。我最近买了一台新的win7电脑,把我所有的项目文件都搬了过去。当我尝试运行项目时,会收到以下错误消息:

    "Failed to decrypt using provider 'MyRsaProtectedConfigurationProvider'. Error message from the provider: The RSA key container could not be opened."

    我意识到我用一个 RSA encryption . 这就是问题所在。我不知道如何使那把钥匙重新工作,以便我能在我的新机器上使用它。我从旧机器导出密钥并使用以下方法导入:

    aspnet_regiis -pi "RSAProviderName" "C:\RSA_configkey.xml"

    已成功导入。然后我运行了这个项目,但是出现了相同的错误消息。我想这可能是许可的问题,所以我跑了:

    aspnet_regiis -pa "RSAProviderName" "\Desktop" -full

    这也是成功的,但我还是得到了错误。通过阅读,我看到人们使用“ASPNET”而不是“\Desktop”(Desktop是我的机器名)。但是,当我尝试使用“ASPNET”时,我得到:

    No mapping between account name and security IDs was done. <Exception from HRESULT = 0x80070534

    谢谢!

    1 回复  |  直到 16 年前
        1
  •  28
  •   Community Mohan Dere    9 年前

    如果您仍然可以访问旧计算机,则始终可以解密该计算机上的配置部分,然后将未加密的配置文件复制到新计算机(如有必要,请重新加密旧计算机上的文件)。

    在Windows7上,默认情况下运行IIS应用程序池的帐户可能是 ApplicationPoolIdentity (相对于 ASPNET公司

    aspnet_regiis -pa RSAProviderName "IIS APPPOOL\DefaultAppPool" -full
    

    aspnet_regiis -px RSAProviderName C:\RSA_configkey.xml -pri
    

    并且,还可以选择在导入期间导出关键数据:

    aspnet_regiis -pi RSAProviderName C:\RSA_configkey.xml -exp
    
        2
  •  2
  •   Sachin Vishwakarma    6 年前

    我也面临同样的问题,但是使用administrator运行commandprompt/powershell解决了这个问题。