asp.net – 在更改密码时从所有浏览器注销用户

前端之家收集整理的这篇文章主要介绍了asp.net – 在更改密码时从所有浏览器注销用户前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个重置密码页面

用户填写详细信息并单击“重置密码”按钮时.调用以下控制器:

public ActionResult ResetPassword(ResetPassword model)
{
    ...
    return RedirectToAction("logout");
}

用户更改密码时,他们会从浏览器中退出.但是,如果他们同时登录到另一个浏览器,他们仍然在另一个浏览器上登录.

我想在用户更改密码时从登录的所有浏览器中注销用户.

解决方法

所以我回到家,决定整理一些代码.给我看代码!!!

我会使用一个处理程序,因此验证总是在用户第一次访问应用程序时完成,并且在一个地方为每个操作方法访问完成.

这个想法是当用户重置密码时,应用程序记录用户重置密码并且第一次没有登录并注销用户.

user.HasResetPassword = true;
user.IsFirstLoginAfterPasswordReset = false;

用户登录时,应用程序将验证用户之前是否已重置其密码,并且现在是第一次登录.如果这些陈述有效,则应用程序会更新其记录,表示您尚未重置密码,并且您尚未首次登录.

步骤1

向ApplicationUser模型添加两个属性

第2步

在Models文件夹中添加一个AuthHandler.cs类,其实现如下.
在此阶段,您将验证用户是否已重置密码,并且自密码重置以来第一次未登录.如果是这样,请将用户重定向登录名.

第3步

在RouteConfig.cs中调用AuthHandler,以便为每个传入的应用程序的http请求调用它.

步骤4

在ResetPassword方法添加如下实现.在此步骤中,当用户重置其密码更新属性时,他们已重置密码并且尚未首次登录.请注意,用户在重置密码时也会明确注销.

第5步

在Login方法添加以下实现.在此步骤中,如果用户成功登录,请验证其密码已重置且第一次记录的密码为false.如果满足所有条件,请更新数据库中的属性,以便在用户以后重置密码时,属性处于准备状态.因此,一种循环确定并更新密码重置的状态,并在重置密码后首次登录.

最后

您的AspnetUsers表应如下所示

注释

这就是我接近它的方式.我没有测试过,所以如果遇到异常,你可以修改它.所有这些都是硬编码,以显示解决问题的方法.

猜你在找的asp.Net相关文章