加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 00:16:20 所属栏目:asp.Net 来源:网络整理
导读:我有一个重置密码页面: 当用户填写详细信息并单击“重置密码”按钮时.调用以下控制器: public ActionResult ResetPassword(ResetPassword model){ ... return RedirectToAction("Logout");} 当用户更改密码时,他们会从浏览器中退出.但是,如果他们同时登录
我有一个重置密码页面:

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

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表应如下所示

注释

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读