【问题标题】:Encrypted connection string can not be decrypted加密的连接字符串无法解密
【发布时间】:2016-02-25 23:22:19
【问题描述】:

我即将发布我的应用程序,但我希望我的连接字符串被加密。

aspnet_regiis -pef "web.config 的sectionName" "path"

上面的命令完成了这项工作,我将我的应用程序发布到服务器并 在服务器机器上运行以下命令:

aspnet_regiis -pa "NetFrameworkConfigurationKey" "identityOfMyAppPool"

但是当我尝试浏览我的应用程序时,我收到以下错误:

配置错误

描述:处理此请求所需的配置文件时出错。请查看下面的具体错误详细信息并适当地修改您的配置文件。

解析器错误

消息:使用提供程序“RsaProtectedConfigurationProvider”解密失败。来自提供者的错误消息:要解密的数据超过了这个模数的最大值 128 字节。

我该如何解决?

提前致谢,

【问题讨论】:

    标签: c# asp.net encryption rsa connection-string


    【解决方案1】:

    返回此错误消息的一个实例是使用 2048 位 RSA 密钥加密 web.config,并尝试使用 1024 位 RSA 密钥进行解密。仔细检查以确保您在两台机器上拥有相同的密钥(您所需要的只是加密机器上密钥的公共部分)。

    默认情况下,每台机器上的 NetFrameworkConfigurationKey 都不同(并且不可导出?)。要从另一台机器部署加密的 web.config,您需要从目标机器导出公钥并使用它进行加密(或按照所有教程创建自己的密钥并将其放在两台机器上......)。

    【讨论】:

    • 我的情况是我将源代码(包括 web.config)从开发服务器移动到我的开发机器。然后我尝试在我的机器上解密。失败。我在服务器中解密。好的。服务器是64位的,我的机器是32位的。
    【解决方案2】:

    试试

    aspnet_regiis -pe "NetFrameworkConfigurationKey" "identityOfMyAppPool"

    而不是

    aspnet_regiis -pa "NetFrameworkConfigurationKey" "identityOfMyAppPool"

    根据 aspnet_regiis /help 或 aspnet_regiis /?

    -pe

    加密配置部分。可选参数: [-prov 提供者] 使用此提供者进行加密。 [-app virtual-path] 在这个虚拟路径上加密。虚拟的 路径必须以正斜杠开头。如果是'/',那么它 指网站的根。如果未指定 -app, 根 web.config 将被加密。 [-site site-name-or-ID] 虚拟路径的站点 -app 中指定。如果没有指定,默认网站 将会被使用。 [-location sub-path] 位置子路径。 [-pkm] 加密/解密 machine.config 而不是 web.config。

    -pa

    为该帐户添加对容器的访问权限。阿古 [-pku] 用户容器而不是机器容器 [-csp 提供程序] 要使用的 Csp 提供程序。 [-full] 添加完全访问权限(默认为读取访问权限)。

    【讨论】:

    • 但是我通过这个命令 aspnet_regiis -pef "sectionName of web.config" "path" 进行加密。使用加密连接字符串时出现我的问题。 -pa 参数存在于 msdn 文档 (msdn.microsoft.com/en-us/library/dx0f3cf2(v=vs.85).aspx) 中。无论如何,我尝试了您的解决方案,但没有奏效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-21
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多