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 – 分布式事务完成 可以在新事务或NULL事务中登录此
- asp.net-mvc-4 – Asp.Net Web Api – ModelBinders
- IIS“SendResponse”状态下的请求已停留很长时间;慢IIS 7.5
- asp.net-mvc – ASP.NET MVC Javascript ActionResult
- asp.net – 用于Web应用程序的实体框架过度杀毒?
- asp.net-mvc – Web部署由于文件正在使用而失败
- asp.net – 什么是确定我的视图状态的好方法?
- asp.net-mvc – 存储库与DAL中的服务模式:EF和Dapper
- asp.net – 如何从水晶报表中的组字段中删除组名
- asp.net – 为什么HttpContext.Response.Cookies [“foo”]
- asp.net-mvc – Asp.net Identity:User.Identit
- asp.net-mvc – ASP.NET MVC:通过两个控制器操作
- 这算是ASP.NET MVC的一个大BUG吗?
- ASP.NET 预编译命令(解决发布后第一次访问慢问题
- asp.net-mvc – App_Web _ * .dll中的System.Nul
- ASP.NET是多线程的(它如何执行请求)
- asp.net – 值不能为null.参数名称:items(Drodo
- asp.net-core – 如何在.NET Core中构建和运行时
- asp.net-mvc – 允许asp.net mvc 2控制器名称的U
- asp.net – UpdateProgress不适用于触发器属性内