gpt4 book ai didi

c# - 通过使用 asp net identity 2.1 发送重置帐户链接来重置用户锁定

转载 作者:太空狗 更新时间:2023-10-29 23:55:54 26 4
gpt4 key购买 nike

我有一个 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/

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