zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    PDF上添加水印
    java调用POI读取Excel
    搭建Linux的VMware Workstation Pro
    js中两种定时器的设置及清除
    SUI使用经验
    List集合与Array数组之间的互相转换
    jquery操作select
    jquery操作CheckBox
    时间格式
    java 获取路径的各种方法
  • 原文地址:https://www.cnblogs.com/shiningrise/p/5653352.html
Copyright © 2011-2022 走看看