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

AuthenticationManager.SignOut() 无法注销用户的问题的更多相关文章

  1. windows server 2003断开远程之后自动注销用户

    windows server 2003断开远程之后自动注销用户 2011-07-30 09:42:52     我来说两句      收藏    我要投稿 最近一台服务器老是断开远程之后过没多久就自动 ...

  2. Linux查看和注销用户(User)

    Linux如何注销其他用户?_Linux教程_Linux公社-Linux系统门户网站https://www.linuxidc.com/Linux/2012-07/64939.htm linux注销指定 ...

  3. 登录、注销&用户和用户组管理

    登录.注销 # 立刻关机 shutdown -h now # 1分钟后,关机 shutdown -h 1 # 立刻重启 shutdown -r now # 2分钟后,重启 shutdown -r 2 ...

  4. ASP.NET MVC5 网站开发实践(二) Member区域 - 用户部分(2)用户登录、注销

    上次实现了用户注册,这次来实现用户登录,用到IAuthenticationManager的SignOut.SignIn方法和基于声明的标识.最后修改用户注册代码实现注册成功后直接登录. 目录: ASP ...

  5. Linux(七)开机,重启和用户登录注销

    7.1 关机&重启命令 基本介绍: shutdown -h now       立刻进行关机 shutdown -h 1            1分钟后关机 shutdown -r now  ...

  6. Linux 开机、重启和用户登录注销、用户管理

    关机&重启命令 shutdown shutdown -h now:表示立即关机 shutdown -h 1:表示1分钟后关机 shutdown -r now:立即重启 halt 就是直接使用, ...

  7. linux开机、重启和用户登陆注销

    关机&重启命令 基本介绍: shutdown –h now    立该进行关机 shudown -h 1 "hello, 1 分钟后会关机了" shutdown –r no ...

  8. Linux 开机、重启和用户登录注销、用户管理、用户组

    l 关机&重启命令   基本介绍: shutdown –h now 立该进行关机 shudown -h 1 "hello, 1 分钟后会关机了" shutdown –r n ...

  9. Linux系统 关机/重启/用户切换/注销,用户管理(用户创建/修改,用户组增加/删除),Linux中 / 和 ~ 的区别

    1.关机/重启命令 shutdown命令 shutdown -h now :立即关机 shutdown -h 1 :1分钟后关机 shutdown -r now :立即重启 shutdown -r 1 ...

随机推荐

  1. Elasticsearch静态集群配置

    这两天需要将ELK中的单节点运行的ES扩展为双节点,查询了下集群配置,百度搜索结果还是一如既往的坑,基本都是各种转帖,以下记录配置静态集群的步骤: * * * <pre><code& ...

  2. 控件 UI: 字体的自动继承的特性, Style, ControlTemplate

    字体的自动继承的特性 Style 样式 ControlTemplate 控件模板 示例1.演示字体的自动继承的特性Controls/UI/FontInherit.xaml <Page x:Cla ...

  3. Java中为什么main()中不能创建内部类对象?

    对main方法而言,虽然写在类中,它是游离于任何类之外的,因此某类的非静态内部类对它而言是不直接可见的,也就无法直接访问 . 1:非静态内部类,必须有一个外部类的引用才能创建. 2:在外部类的非静态方 ...

  4. perl 变量 $/ 的用法解析

    默认状态下,很显然都是用\n来区分行,\n也被我们称作为换行符.当读取序列时,按行来读取时,就是以换行符为标准. perl中"行"的概念就由$/决定. { $data = &quo ...

  5. Noip2016のmengbier

    Day0 上午10点多上了火车,向三位学长问了一路去年noip他们是用什么心态去考的,明明老师和同学都说我正常发挥应该没什么问题但心里就是紧张的不行,就是害怕犯个sb错误爆上一道题TAT. 去试机.. ...

  6. 【BZOJ-3696】化合物 树形DP + 母函数(什么鬼)

    3696: 化合物 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 165  Solved: 85[Submit][Status][Discuss] D ...

  7. 在数据库中如果组合主键(假设为stuID和stuName)存在则更新,不存在则新增

    这是今天在项目中遇到的问题,后来查了一下,有的网友说可以用存储过程,但自己现在还不会用,所以下记载下来,做为学习存贮过程的引子. 现在是在java中实现了这个if的逻辑,

  8. NuGet包调试源码的方法

    如果按照nuget官网给出的网址:https://docs.nuget.org/create/creating-and-publishing-a-symbol-package 那么你会发觉下载符号包的 ...

  9. Adding New Functions to MySQL(User-Defined Function Interface UDF、Native Function)

    catalog . How to Add New Functions to MySQL . Features of the User-Defined Function Interface . User ...

  10. dedecms /plus/feedback.php SQL Injection Vul

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 . Dedecms v5.7的plus\feedback.php SQL ...