2

当我尝试实例化新的 DefaultMembershipProvider (system.web.providers) 时遇到问题。

DefaultMembershipProvider _provider = new DefaultMembershipProvider();

在此之后,我会假设设置是从 web.config 加载的,但事实并非如此。例如minRequiredPasswordLength保持为 0。

这是我的会员设置:

<membership>
    <providers>
        <add applicationName="/"
             connectionStringName="MyDB"
             enablePasswordRetrieval="false"
             enablePasswordReset="true"
             maxInvalidPasswordAttempts="5"
             minRequiredPasswordLength="6"
             minRequiredNonalphanumericCharacters="0"
             passwordAttemptWindow="10"
             requiresQuestionAndAnswer="false"
             requiresUniqueEmail="false" 
             name="DefaultMembershipProvider"
             type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </providers>
</membership>

我可以通过 asp.net 配置工具毫无问题地创建新用户,所以我的数据库连接似乎没问题。

有任何想法吗?

4

1 回答 1

1

无需自己实例化它。您应该能够直接访问Membership的静态属性和方法(您会注意到它们中的大多数都是静态的)。

例如,这将为您提供您配置的最小所需密码长度:

int minPassLength = System.Web.Security.Membership.MinRequiredPasswordLength;

您可以使用静态方法做许多其他方便的事情,例如获取所有用户(使用GetAllUsers方法)或更新特定用户信息(使用UpdateUser方法)。

另外,我相信你应该type在你的会员设置中设置为

type="System.Web.Security.MembershipProvider"
于 2012-06-12T13:57:57.550 回答