requiresQuestionAndAnswer 在 web.config 中设置为 false,但 RequiresQuestionAndAnswer 在运行时为 true
requiresQuestionAndAnswer set to false in web.config but RequiresQuestionAndAnswer is true at runtime
在 ASP.net 网络应用程序中,我在 web.config 中定义了以下成员资格提供程序:
<membership>
<providers>
<add connectionStringName="MyServer" name="MyServer" type="System.Web.Security.SqlMembershipProvider"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
enablePasswordRetrieval="false" />
</providers>
</membership>
当我运行调试器中的应用程序时,属性Membership.Provider.RequiresQuestionAndAnswer
是true
。
为什么?我该如何解决这个问题?
更新:Ar tuntime,Membership.Providers
集合包含两个几乎相同的 Provider 实例。差异是:
- 第一个提供者有 Name=="AspNetSqlMembershipProvider" 和 RequiresQuestionAndAnswer==true
- 第二个提供者有 Name=="MyServer" 和 RequiresQuestionAndAnswer==false。
现在想弄清楚第一个来自哪里。
解决我的问题的方法是在 web.config 中指定:
<membership defaultProvider="MyServer>
在 运行 时有一个 "extra" 提供程序的原因是它在我的 machine.config 文件中定义。 Here's how to find yours.
修复归功于@meidan-alon,根本原因归功于@ken-egozi :)
根据后续问题,神秘提供程序在名为 machine.config 的较低级别配置文件中定义,这是所有 asp.net 站点 [=15] 的服务器级父配置文件=] 在机器上。在 MSDN page for asp.net config hierarchy.
查看更多详细信息
在 ASP.net 网络应用程序中,我在 web.config 中定义了以下成员资格提供程序:
<membership>
<providers>
<add connectionStringName="MyServer" name="MyServer" type="System.Web.Security.SqlMembershipProvider"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
enablePasswordRetrieval="false" />
</providers>
</membership>
当我运行调试器中的应用程序时,属性Membership.Provider.RequiresQuestionAndAnswer
是true
。
为什么?我该如何解决这个问题?
更新:Ar tuntime,Membership.Providers
集合包含两个几乎相同的 Provider 实例。差异是:
- 第一个提供者有 Name=="AspNetSqlMembershipProvider" 和 RequiresQuestionAndAnswer==true
- 第二个提供者有 Name=="MyServer" 和 RequiresQuestionAndAnswer==false。
现在想弄清楚第一个来自哪里。
解决我的问题的方法是在 web.config 中指定:
<membership defaultProvider="MyServer>
在 运行 时有一个 "extra" 提供程序的原因是它在我的 machine.config 文件中定义。 Here's how to find yours.
修复归功于@meidan-alon,根本原因归功于@ken-egozi :)
根据后续问题,神秘提供程序在名为 machine.config 的较低级别配置文件中定义,这是所有 asp.net 站点 [=15] 的服务器级父配置文件=] 在机器上。在 MSDN page for asp.net config hierarchy.
查看更多详细信息