我有一个 ASP MVC 项目,我想在用户锁定后将解锁帐户锁定链接发送到用户的电子邮件。我在我的项目中使用 asp net identity 2.1。我可能做的是使用 asp 身份将帐户锁定 30 分钟。这段时间之后,帐户将被解锁。我试图向用户发送包含重置链接的电子邮件。该链接调用具有以下代码的方法。
[AllowAnonymous]
public async Task<ActionResult> UnlockAccount(string userId)
{
await UserManager.ResetAccessFailedCountAsync(userId);
return RedirectToAction("Login");
}
但在此之后,我的帐户仍然被锁定了 30 分钟,这是我在 IdentityConfig.cs 中设置的。这在 asp net identity 中可能吗?
最佳答案
我知道这是旧的,但它值得一个答案,因为我自己也一直在想同样的问题......
AccessFailedCount
无关紧要 - 唯一将用户锁定的是 LockoutEndDateUtc
。如果当前 UTC 日期时间早于 LockoutEndDateUtc
,那么您将无法进入。
虽然重置很简单:
await UserManager.SetLockoutEndDateAsync(userId, new DateTimeOffset(DateTime.UtcNow));
您可以将 DateTimeOffset
设置为您想要的任何值,只要它早于当前 DateTimeUTC,在我的示例中,我使用 DateTime.UtcNow
,因为它提供了额外的好处知道帐户何时解锁。
当用户最终再次登录时,AccessFailedCount
将重置为 0,因此您无需担心重置。
关于c# - 通过使用 asp net identity 2.1 发送重置帐户链接来重置用户锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33295992/