gpt4 book ai didi

authentication - OWIN - Authentication.SignOut() 似乎没有删除 cookie

转载 作者:行者123 更新时间:2023-12-03 08:39:54 29 4
gpt4 key购买 nike

我在 OWIN Cookie 身份验证方面遇到了一些问题。我有一个 .Net 站点,它有一些 MVC 页面,这些页面使用 cookie 身份验证和受不记名 token 保护的 WebAPI 资源。

当我注销时,我删除了客户端上的访问 token ,因此后续 API 请求将不会在 header 中包含该 token ,从而导致身份验证失败。这部分很好。

以同样的方式,我还希望注销以删除 MVC 页面使用的 cookie。我在服务器上做了以下事情:

    [Route("Logout")]
public IHttpActionResult Logout()
{
var ctx = Request.GetOwinContext();
var authenticationManager = ctx.Authentication;
authenticationManager.SignOut();
return Ok();
}

但是,在调用 Logout 之后,即使 cookie 应该被 Logout 调用删除,我仍然可以访问 protected MVC 页面。

看起来很简单,所以我可能错过了一些东西。

谢谢,

最佳答案

过去几天我遇到了类似的问题。代替

Request.GetOwinContext().Authentication.authenticationManager.SignOut();
使用其中一个(且仅一个):
Request.GetOwinContext().Authentication.SignOut();

Request.GetOwinContext().Authentication.SignOut(Microsoft.AspNet.Identity.DefaultAuthenticationTypes.ApplicationCookie);

HttpContext.Current.GetOwinContext().Authentication.SignOut(Microsoft.AspNet.Identity.DefaultAuthenticationTypes.ApplicationCookie);
本文解释了为什么您的 cookie 不会被删除: https://dzone.com/articles/catching-systemwebowin-cookie
我知道我的答案不是最基于研究的,但说实话,我就是找不到为什么我提供的代码示例对我有用。我只知道如果您以另一种方式执行 SignOut() ,System.Web 会弄乱 Owins cookie。

关于authentication - OWIN - Authentication.SignOut() 似乎没有删除 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28999318/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com