ASP.NET 2.0 Membership:ValidateUser没有锁定用户?

时间:2009-02-19 10:03:34

标签: asp.net membership locking validation

我在ASP.NET 2.0网站中使用默认的SQLMembershipProvider,并且期望Membership.ValidateUser在输入一些错误的密码后锁定用户(在我的情况下为5)但是ValidateUser似乎没有关心如何记录错误的密码尝试并锁定用户。

怎么了?

我的web.config中的成员资格配置:

<membership defaultProvider="SqlMembershipProvider" >
   <providers>
     <clear />
      <add connectionStringName="ConnectionStringName" enablePasswordRetrieval="true"
         enablePasswordReset="true" requiresQuestionAndAnswer="false"
         requiresUniqueEmail="true" passwordFormat="Encrypted" maxInvalidPasswordAttempts="5"
         minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0"
         passwordAttemptWindow="10" passwordStrengthRegularExpression=""
         applicationName="MyApp" name="SqlMembershipProvider"
         type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
   </providers>
</membership>

3 个答案:

答案 0 :(得分:1)

PasswordAttemptWindow和MaxInvalidPasswordAttempts设置为什么?并且这些配置设置是否在正确的web.config中设置? (测试环境实际使用的那个)

答案 1 :(得分:1)

以下是我的会员使用情况的配置,如果有任何用途,可以按要求运行:

<membership defaultProvider="AspNetSqlMembershipProvider" userIsOnlineTimeWindow="30">
  <providers>
    <remove name="AspNetSqlMembershipProvider" />
    <!-- 
      Membership defaults mainly below this point:
      connString, reqQ&A - modified - all others currently default.
    -->
    <add connectionStringName="CustomSqlServerProvider"
          name="AspNetSqlMembershipProvider"
          type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
          enablePasswordRetrieval="false"
         enablePasswordReset="true"
         requiresQuestionAndAnswer="false"
         requiresUniqueEmail="false"
         passwordFormat="Hashed"
         maxInvalidPasswordAttempts="5"
         minRequiredPasswordLength="7"
         minRequiredNonalphanumericCharacters="1"
         passwordAttemptWindow="10"
         passwordStrengthRegularExpression=""
         applicationName="/" />
  </providers>
</membership>

另外,您是否尝试过使用.Login()方法进行身份验证过程?这就是我正在使用的而不是validateuser()。

答案 2 :(得分:0)

请将用户。[IsApproved]设置为true