当前位置: 首页 > 编程语言 > C#

如何在其他用户更改用户名时强制注销用户?Share

时间:2023-04-11 01:17:08 C#

如何在其他用户更改用户名时强制注销用户?在我的应用程序中,我使用Forms-Authentication来登录和注销用户。其中一项功能是管理员可以更改其他用户的用户名。在这种情况下,我需要注销用户名已更改的用户。如果我不这样做,他们可以访问该应用程序并由于之前设置的cookie而收到错误消息(因为他们的用户名不存在,并且在某些部分我使用他们的用户名来实现某些功能)。我如何强制这些用户使用Forms-Authentication注销?更新:publicoverridevoidOnActionExecuting(ActionExecutingContextfilterContext){stringcontroller=filterContext.RouteData.Values["controller"].ToString();stringaction=filterContext.RouteData.Values["action"].ToString();//下面返回以前的用户名,该用户名在db中不再存在。字符串用户名=HttpContext.Current.User.Identity.Name;工作单元unitOfWork=newUnitOfWork();如果(!unitOfWork.UserRepository.UserExists(用户名)){FormsAuthentication。登出();filterContext.HttpContext.Session.Clear();filterContext.HttpContext.Session.Abandon();//我没有使用角色。}unitOfWork.Dispose();base.OnActionExecuting(filterContext);在我的客户全局过滤器中,我检查用户是否存在,如果不存在,我对其进行签名。但是,它不起作用。通过工作,我的意思是他们进行身份验证并获得对应用程序的访问权限。提前致谢。这是强制用户退出的方法:publicvoidUserPasswordChangedHandler(){FormsAuthentication.SignOut();角色.DeleteCookie();会话.清除();如果我弄错了,请告诉我。更新对您的附加问题的简单回答是,如果他的数据由管理员更新,则保持每个用户的布尔值跟踪,如果是-只需将他重定向到登录页面。请参阅以下有关使用表单身份验证信息强制注销的文章:更新2清除cookie希望这有帮助。当用户需要变为无效时,您必须将他们的详细信息添加到某种内部静态列表中。然后在每个页面请求(可能使用Application_BeginRequest)上检查当前用户是否在该列表中,如果是,则在那里调用FormsAuthentication.SignOut。这似乎有点hack,但这是我现在能想到的最好的方法。请注意,删除用户的缺席会话状态完全是另一个问题。以上是C#学习教程:如何在其他用户更改用户名时强制用户注销?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: