我在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>
答案 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