Asp.net DefaultMembershipProvider=>;对象引用未设置为对象的实例

Asp.net DefaultMembershipProvider=>;对象引用未设置为对象的实例,asp.net,asp.net-mvc-3,asp.net-membership,asp.net-mvc-4,membership-provider,Asp.net,Asp.net Mvc 3,Asp.net Membership,Asp.net Mvc 4,Membership Provider,当我尝试实例化一个新的DefaultMembershipProvider(system.web.providers)时,遇到了一些问题 在此之后,我假设设置是从web.config加载的,但事实并非如此。例如,minRequiredPasswordLength保持为0 以下是我的会员设置: <membership> <providers> <add applicationName="/" connectionStri

当我尝试实例化一个新的DefaultMembershipProvider(system.web.providers)时,遇到了一些问题

在此之后,我假设设置是从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配置工具毫无问题地创建新用户,因此我的数据库连接似乎正常


有什么想法吗?

无需自己举例说明。您应该能够直接访问的静态属性和方法(您会注意到其中大多数是静态的)

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

int minPassLength = System.Web.Security.Membership.MinRequiredPasswordLength;
您可以使用静态方法做许多其他方便的事情,比如获取所有用户(使用)或更新特定用户信息(使用)

另外,我认为您应该将成员资格设置中的
类型设置为

type="System.Web.Security.MembershipProvider"

为什么你要自己实例化DefaultMembershipProvider?有什么原因吗?我必须承认我对它很陌生。我只是看不到任何其他方法来获得它提供的方法…那么我应该只使用system.web.security.Membership类吗?您不需要自己实例化该类。除非您试图做一些特殊的事情,否则您所要做的就是在web.config中配置这些东西,框架将负责通过填充web.config中的值来实例化该类。
type="System.Web.Security.MembershipProvider"