在简单成员资格提供程序中,我们可以执行以下操作来跟踪无效登录尝试的次数。
WebSecurity.IsAccountLockedOut(userName, allowedPasswordAttempts, intervalInSeconds)
这在 ASP NET 标识 (http://www.asp.net/identity/overview/getting-started/introduction-to-aspnet-identity) 中不受支持。
我正在尝试在大约 5 次登录尝试后在无效登录尝试时显示 ReCaptcha。 我找不到ASP NET Identity MVC 5的任何示例。有什么帮助吗?
尝试将 ApplicationOAuthProvider 中的 GrantResourceOwnerCredentials 方法.cs更改为:
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
T user = await _userManager.FindAsync(context.UserName, context.Password);
if (user == null)
{
if (((int) HttpContext.Current.Session["Tries"]) >= 5)
{
context.SetError("maximum_tries", "You tried too many times");
return;
}
context.SetError("invalid_grant", "The user name or password is incorrect.");
HttpContext.Current.Session["Tries"] = ((int)HttpContext.Current.Session["Tries"]) + 1;
return;
}
ClaimsIdentity oAuthIdentity = await _userManager.CreateIdentityAsync(user,
context.Options.AuthenticationType);
var ticket = new AuthenticationTicket(oAuthIdentity, GenerareProperties(user));
context.Validated(ticket);
ClaimsIdentity cookiesIdentity = await _userManager.CreateIdentityAsync(user,
CookieAuthenticationDefaults.AuthenticationType);
context.Request.Context.Authentication.SignIn(cookiesIdentity);
HttpContext.Current.Session["Tries"] = 0;
}
简单地说,我使用会话来跟踪用户写入无效密码的次数。如果会话值等于 5,则我们显示另一条消息。
最近公布了最新版本的 ASP.NET Identity:2.0.0-beta1,ASP.NET Identity使用了两个名为UserManager和UserStore的新类。
您可以从以下链接获取 ASP.NET 身份介绍:
http://www.c-sharpcorner.com/UploadFile/4b0136/getting-started-with-Asp-Net-identity-in-visual-studio-2013/
如果要通过使用 ASP.NET Identiy 应用注册和登录,以下链接很有帮助:
http://www.c-sharpcorner.com/UploadFile/4b0136/working-with-mvc-using-Asp-Net-identity-2-0-0-beta1/
http://www.c-sharpcorner.com/UploadFile/4b0136/working-with-new-Asp-Net-identity-2-0-0-in-Asp-Net-applicati/