迁移DotNetNuke站点至新服务器遇密码哈希无法检索错误求助
解决DotNetNuke迁移后密码配置冲突错误
核心问题分析
你遇到的错误是配置规则冲突:ASP.NET Membership Provider明确规定,当密码格式设置为Hashed(哈希加密)时,由于哈希是不可逆的加密方式,无法还原原始密码,因此不能同时开启enablePasswordRetrieval="true"(允许密码检索)。这就是报错的直接原因。
直接修复步骤
修改web.config第224行的AspNetSqlMembershipProvider节点,将enablePasswordRetrieval="true"改为enablePasswordRetrieval="false"即可解决:
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="SiteSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="0" requiresUniqueEmail="false" passwordFormat="Hashed" applicationName="DotNetNuke" description="Stores and retrieves membership data from the local Microsoft SQL Server database" />
为什么之前迁移无问题?
大概率是配置文件出现了差异:
- 可能你复制源服务器文件时,
web.config的会员提供者配置被误修改; - 或者源服务器的
web.config原本就是enablePasswordRetrieval="false",同步到新服务器时出现了配置偏差。
额外排查补充
结合你提到的已执行操作,补充几个验证点:
- 对比源服务器与目标服务器的
web.config,确保除连接字符串外,会员提供者的其他参数完全一致; - 确认目标服务器安装的.NET Framework版本与源服务器匹配(需符合当前DotNetNuke版本的要求);
- 虽然当前错误与数据库连接无关,但修改配置后可再次验证连接字符串的正确性,避免后续出现数据库连接问题。
内容的提问来源于stack exchange,提问作者Matej Krhin
相关产品推荐
相关产品推荐

