AuthenticationManager.SignOut() 无法注销用户的问题
http://hadb.me/2015/03/23/authenticationmanager-signout-not-working/
这文章不对, 我发现原因是不能有Response.Redirect("~/");跳转了后,,就退不出登录了
AuthenticationManager.SignOut(); //Response.Redirect("~/");
最近遇到一个很诡异的问题,在最近的一个新项目中,发现在MVC5下,偶尔会出现登陆的用户无法注销的问题,经检查发现AuthenticationManager.SignOut()
执行之后并没有删除Cookie,手动删除Cookie之后,该功能又正常了,又能正常登陆、注销了。前面几次出现这个问题我都是手动删除Cookie,发现恢复了之后,我也就没在意。
刚刚又出现这个问题,我怒了,决定Google下。Google了一番之后,发现这个问题还挺普遍,但是都没有什么好的答案。后来看到有人说,用AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie)
可以解决这个问题,一试,还真解决了。可是官方的例子里并没有传这个参数,而且我以前的几个站点,都是用的官方例子里的AuthenticationManager.SignOut()
,而且都没有出现这个问题。百思不得其解,好挫折。不弄清楚睡不着觉。于是又继续搜,终于发现了一个帖子,https://aspnetidentity.codeplex.com/workitem/2347。
当初这个问题应该是发生在Microsoft.AspNet.Identity 2.0/2.1 rc + Microsoft.Owin.3.0 rc版中,我以前项目用的Identity2.2 + Owin 3.0中,应该是没有这个问题。最近刚更新的Identity2.3 + Owin 3.0.1中,又有了这个问题。
哈哈!突然感觉我已经走在MVC的前沿了。记下这个问题,为今后遇到这个问题的朋友们排忧解难!
解决方案就是,在LogOff方法里,用AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie)
就行了。
当然,我这个项目并没有用到第三方登陆,如果用到了第三方登陆,可能还需要添加AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
。
by HADB @ Home
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章