gpt4 book ai didi

c# - ASP.Net Identity 2.0 AccessFailedCount 不递增

转载 作者:可可西里 更新时间:2023-11-01 07:50:01 26 4
gpt4 key购买 nike

昨晚我正在处理一个使用 FormsAuthentication 的新项目,并且正在自定义票证以包含安全 token ,因此如果用户在一个浏览器中注销,它会在所有浏览器中注销。查看 ASP.net Identity 的最新迭代,它似乎已经内置了此功能。

我创建了一个启用了个人帐户的新测试 MVC 5 Web 应用程序。注册和身份验证开箱即用。

但是,我注意到失败的登录尝试不会增加 AspNetUsers 表中的 AccessFailedCount 字段。由于这不会增加,我可以在不锁定帐户的情况下尝试尽可能多的失败登录尝试。

如何在 ASP.net Identity 2.0 上启用 AccessFailedCount 和锁定功能?

最佳答案

您必须手动处理。 CheckPassword 方法调用 PasswordHasher.VerifyHashedPassword 方法来验证密码,但当提供的密码与现有密码不匹配时,它不会更新访问失败计数。

这是支持锁定的身份验证方法的示例:

UserManager<User> userManager = new UserManager<User>(new UserStore());

if (userManager.SupportsUserLockout && userManager.IsLockedOut(userId))
return;

var user = userManager.FindById(userId);
if (userManager.CheckPassword(user, password))
{
if (userManager.SupportsUserLockout && userManager.GetAccessFailedCount(userId) > 0)
{
userManager.ResetAccessFailedCount(userId);
}

// Authenticate user
}
else
{
if (userManager.SupportsUserLockout && userManager.GetLockoutEnabled(userId))
{
userManager.AccessFailed(userId);
}
}

关于c# - ASP.Net Identity 2.0 AccessFailedCount 不递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24207418/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com