在web中requiresQuestionAndAnswer设置为false.但RequiresQuestionAndA

本文关键字:false RequiresQuestionAndA 设置 web requiresQuestionAndAnswer | 更新日期: 2023-09-27 17:50:50

在一个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>

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

为什么?我怎样才能解决这个问题呢?

Update:在运行时,Membership.Providers集合包含两个几乎相同的Provider实例。不同之处在于:

  • 第一个提供者有Name=="AspNetSqlMembershipProvider"和RequiresQuestionAndAnswer==true
  • 第二个提供者有Name=="MyServer"和RequiresQuestionAndAnswer==false。

现在试着找出第一个是从哪里来的

在web中requiresQuestionAndAnswer设置为false.但RequiresQuestionAndA

根据后面的问题,神秘提供者是在一个较低级别的配置文件中定义的,名为machine。配置,它是在计算机上运行的所有asp.net站点的服务器级父配置文件。在MSDN页面查看asp.net配置层次结构的更多细节

解决我的问题是在web中指定。配置:

<membership defaultProvider="MyServer>
在运行时有一个"额外的"Provider的原因是它是在我的机器中定义的。配置文件。这里是如何找到你的。

修复功劳归@meidan-alon,根本原因归@ken-egozi:)