2011-12-28 70 views
1

我尝试做三次不使用数据库尝试失败后锁定用户的研究,并且我找到了与SQLMemberShipProvider一起使用它的答案。我修改th Web.config:用maxInvalidPasswordAttempts锁定用户不起作用

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/LogOnCust" timeout="2880" /> 
</authentication> 
<membership> 
    <providers> 
    <clear /> 
    <add name="AspNetSqlMembershipProvider" 
    type="System.Web.Security.SqlMembershipProvider" 
    connectionStringName="WebDBConnection" 
    maxInvalidPasswordAttempts="3" 
    minRequiredPasswordLength="6" 
    passwordAttemptWindow="10" 
    applicationName="/" /> 
    </providers> 
</membership> 

但它不工作,我不知道为什么。我需要做些什么修改才能使更多?

+0

maxInvalidPasswordAttempts =“5”!= 3 http://msdn.microsoft.com/en-us/library/system.web.security.membership.maxinvalidpasswordattempts.aspx – xQbert 2011-12-28 02:02:11

+0

那么你是说你没有使用数据库?或者你是和看不到字段增量作为无效的密码尝试发生? – uadrive 2011-12-28 02:06:56

+0

@uadrive:我试过了,用我自己的帐户用不正确的密码登录了3次,但我仍然可以在第4次登录网页。所以我不知道我能做什么或看到有关错误。 – Nothing 2011-12-28 02:16:09

回答

2

尝试设置您的默认成员资格提供程序,看看是否有帮助。

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/LogOnCust" timeout="2880" /> 
</authentication> 
<membership defaultProvider="AspNetSqlMembershipProvider"> 
    <providers> 
    <clear /> 
    <add name="AspNetSqlMembershipProvider" 
    type="System.Web.Security.SqlMembershipProvider" 
    connectionStringName="WebDBConnection" 
    maxInvalidPasswordAttempts="3" 
    minRequiredPasswordLength="6" 
    passwordAttemptWindow="10" 
    applicationName="/" /> 
    </providers> 
</membership> 

此外,检查,以确保存储过程是否正确安装,我知道我遇到了与Oracle这个问题,但使用SQL Server时,并没有太多的问题。不伤害检查。

+0

我添加了这个: 但是它仍然没有什么效果,而我登录失败3次:( – Nothing 2011-12-28 02:50:04

+1

你可以发布你的登录代码?我想知道如果问题存在的地方。你使用帐户登录MVC生成的代码与单元测试?如果是,请给我显示ValidateUser(字符串用户名,字符串密码)方法。 – uadrive 2011-12-29 21:48:21

+0

我有一些混淆,现在它完美。谢谢。 – Nothing 2011-12-30 05:44:46

0

我有同样的问题。我的原因是用户未被批准。用户获得批准后,每次失败尝试后,“FailedPasswordAttemptCount”都会递增。