加密 web.config 中的成员资格元素时出现问题
Posted
技术标签:
【中文标题】加密 web.config 中的成员资格元素时出现问题【英文标题】:Problem encrypting membership element in web.config 【发布时间】:2010-09-13 04:12:44 【问题描述】:我正在尝试加密 .Net 应用程序的 Web.Config 中的“system.web.membership”元素,以保护 Active Directory 的用户名和密码。我正在使用 aspnet_regiis 命令进行加密,并尝试了几种不同的字符串作为“pe”选项的值,但均未成功。我已成功加密 web.config 上的“connectstrings”元素。
命令
C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis -pe "connectionStrings" -site MySite -app /MyApp 加密配置部分... 成功了! C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis -pe "membership" -site MySite -app /MyApp 加密配置部分... 未找到配置部分“成员资格”。 失败的! C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis -pe "system.web.membership" -site MySite -app /MyApp 加密配置部分... 未找到配置部分“system.web.membership”。 失败!
Web.Config
<configuration>
...
<system.web>
...
<authentication mode="Forms">
<forms name=".ADAuthCookie"
timeout="30"/>
</authentication>
<authorization>
<deny users="?"/>
<allow users="*"/>
</authorization>
<membership defaultProvider="MyADMembershipProvider">
<providers>
<add name="MyADMembershipProvider"
type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="ADConnectionString"
connectionUsername="MyUserName"
connectionPassword="MyPassowrd"/>
</providers>
</membership>
...
</system.web>
...
</configuration>
那是什么?我错过了什么?
【问题讨论】:
【参考方案1】:配置部分由“system.web/membership
”标识,而不是“membership
”或“system.web.membership
”。
【讨论】:
【参考方案2】:我知道您的问题已经解决,但是对于收到此错误消息的其他人来说,似乎只有 web.config 的某些部分可以加密。我试图在我的网络配置中加密 SMTP 设置:
<?xml version="1.0"?>
<configuration>
<system.net>
<mailSettings>
<smtp>
<network host="myhost" port="25" userName="myusername" password="mypassword" />
</smtp>
</mailSettings>
</system.net>
</configuration>
这行得通:
aspnet_regiis.exe -pef "system.net/mailSettings/smtp" "path_to_site" -prov "DataProtectionConfigurationProvider"
但这些没有:
aspnet_regiis.exe -pef "system.net/mailSettings" "path_to_site" -prov "DataProtectionConfigurationProvider"
aspnet_regiis.exe -pef "system.net" "path_to_site" -prov "DataProtectionConfigurationProvider"
【讨论】:
以上是关于加密 web.config 中的成员资格元素时出现问题的主要内容,如果未能解决你的问题,请参考以下文章
将 httpLogging 设置添加到 MVC web.config 时出现 HTTP 错误 500