登录 - 仅允许3次尝试

Jaf*_*fry 4 c# asp.net

我正在创建一个新的应用程序..我成功创建了一个登录页面..现在我需要修改登录页面..只允许用户进行3次尝试..如果用户错误地输入密码超过3次(5次以内) min)他的帐户必须被屏蔽.并且必须显示错误消息,因为您无法访问您的页面..请分享您的想法...

Wil*_*lem 9

使用MembershipProvider并在web.config中,在system.web中,您可以配置尝试次数和超时次数.根据您的要求设置maxInvalidPasswordAttempts ="3"和passwordAttemptWindow ="5".

<membership defaultProvider="MyMembershipProvider">
  <providers>
    <clear/>
    <add name="MyMembershipProvider"
         type="MyMembershipProvider"
         autogenerateschema="true"
         connectionStringName="MyConnectionString"
         enablePasswordRetrieval="false"
         enablePasswordReset="true"
         requiresQuestionAndAnswer="false"
         requiresUniqueEmail="false"
         passwordFormat="Hashed"
         maxInvalidPasswordAttempts="3"
         minRequiredPasswordLength="8"
         minRequiredNonalphanumericCharacters="1"
         passwordAttemptWindow="5"
         passwordStrengthRegularExpression=""
         applicationName="/"  />
  </providers>
</membership>
Run Code Online (Sandbox Code Playgroud)

这将需要一些配置,但如果配置正确(甚至可能使用角色提供者),默认的asp.net登录控件几乎可以处理所有事情,甚至是PasswordRecovery和CreateUserWizard.MembershipProvider将自动为用户注册生成所有必需的表.

数据库可以是mdb文件,ms sqlserver或mysql数据库.


Bob*_*bby 4

只需将一个 int 列添加到名为 的用户表中FailedLogins。每次他失败时都要进行计数,如果计数器大于 3,则不再允许从该帐户进行任何登录。

编辑:如果您想在一定时间后重置尝试,则必须添加日期时间列( fe LastFailedLogin)并检查是否已经过去了足够的时间以允许进一步尝试和/或重置计数器。