注销功能不适用于 ASP.NET 标识

Posted

技术标签:

【中文标题】注销功能不适用于 ASP.NET 标识【英文标题】:Logout functionality not working with ASP.NET identity 【发布时间】:2015-03-31 12:49:52 【问题描述】:

我正在尝试退出应用程序,但身份验证 cookie 没有被删除。下面是我的实现

//Log in action
var identity = new ClaimsIdentity(new[] 
                            new Claim(ClaimTypes.Name, loginModel.UserName),
                        ,
                        DefaultAuthenticationTypes.ApplicationCookie,
                        ClaimTypes.Name,
                        ClaimTypes.Role);

Authentication.SignIn(new AuthenticationProperties
                    
                        IsPersistent = loginModel.RememberMe
                    , identity);


//logout action          
  IAuthenticationManager Authentication
    
                get  return HttpContext.GetOwinContext().Authentication; 
    

Authentication.SignOut(DefaultAuthenticationTypes.ApplicationCookie);

//startup
app.UseCookieAuthentication(new CookieAuthenticationOptions
            
                AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
                LoginPath = new PathString("/Account/Login"),
                //AuthenticationMode = AuthenticationMode.Active

            );

【问题讨论】:

会不会和这个有关:***.com/questions/20737578/…? 【参考方案1】:

如果它对其他人有用。将项目从 MVC2 升级到 MVC5 后,我在 Chrome 中遇到了这个问题,但在 IE 中没有。我花了几天时间试图解决它,然后决定更新我在基本控制器中的一些跟踪代码。重新编译后问题消失了。

我不想回溯我的步骤来验证这是一个解决方案,但我想知道该项目是否需要彻底重新编译并修改引用它实现相同目标的其他代码。

【讨论】:

以上是关于注销功能不适用于 ASP.NET 标识的主要内容,如果未能解决你的问题,请参考以下文章

IdentityServer3 注销功能不适用于 ASP.NET Core 客户端

ASP.NET 核心标识。使用 ApplicationDbContext 和 UserManager。他们是不是共享上下文?

自动完成不适用于 IE 的 asp.net 文本框

ASP.NET Web API 身份验证(Web + 移动)

ASP.NET MVC 模型验证不适用于控制器构造函数之一

win7+iis7.5+asp.net下 CS0016: 未能写入输出文件“c:WindowsMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NE