在Web.config中requireQuestionAndAnswer设置为false但在运行时RequiresQuestionAndAnswer为true

uri*_*rig 5 c# asp.net asp.net-membership web-config sqlmembershipprovider

在ASP.net Web应用程序中,我在web.config中定义了以下成员资格提供程序:

<membership>
  <providers>
    <add connectionStringName="MyServer" name="MyServer" type="System.Web.Security.SqlMembershipProvider" 
      enablePasswordReset="true" 
      requiresQuestionAndAnswer="false" 
      enablePasswordRetrieval="false" />
  </providers>
</membership>
Run Code Online (Sandbox Code Playgroud)

当我在调试器中运行应用程序时,属性Membership.Provider.RequiresQuestionAndAnswertrue.

为什么?我该如何解决这个问题?

更新:Ar tuntime,该Membership.Providers集合包含两个几乎完全相同的Provider实例.不同之处是:

  • 第一个Provider有Name =="AspNetSqlMembershipProvider"和RequiresQuestionAndAnswer == true
  • 第二个Provider具有Name =="MyServer"和RequiresQuestionAndAnswer == false.

现在试图找出第一个来自哪里.

Ken*_*ozi 3

根据后续问题,神秘提供程序是在名为 machine.config 的较低级别配置文件中定义的,该文件是计算机上运行的所有 asp.net 站点的服务器范围父配置文件。有关 asp.net 配置层次结构的更多详细信息,请参阅MSDN 页面。