在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.RequiresQuestionAndAnswer
为true
。
为什么呢?我该如何解决这个问题?
更新:Ar tuntime,Membership.Providers
集合包含两个几乎完全相同的Provider实例。不同之处是:
现在试图找出第一个来自哪里。
答案 0 :(得分:3)
根据后续问题,神秘提供程序在较低级别的配置文件中定义,名为machine.config,它是服务器上运行的所有asp.net站点的服务器范围的父配置文件。请参阅MSDN page for asp.net config hierarchy上的更多详细信息。
答案 1 :(得分:0)
我的问题的解决方法是在web.config中指定:
<membership defaultProvider="MyServer>
在运行时有“额外”提供程序的原因是它在我的 machine.config 文件中定义。 Here's how to find yours
修复归功于@ meidan-alon,因为根本原因归功于@ ken-egozi:)