gpt4 book ai didi

c# - 如何从 AuthorizeAttribute 自定义类的 HttpActionContext 获取 cookie?

转载 作者:行者123 更新时间:2023-12-05 07:31:58 30 4
gpt4 key购买 nike

我正在验证存储在 cookie 上的 token ,所以我创建了一个类

public class VIEWAuthorizeAttribute : AuthorizeAttribute

然后我覆盖了 OnAuthorization 类

public override void OnAuthorization(AuthorizationContext filterContext)
{
var cookie = filterContext.HttpContext.Request.Cookies.Get("Profile"); //This is working

if (cookie != null && IsValidToken(cookie["Token"]))
{
return;
}

HandleUnauthorizedRequest(filterContext);
}

这适用于 MVC Controller ,但当我尝试对 Web API Controller 执行类似操作时,我无法从请求中获取 cookie。

public override void OnAuthorization(HttpActionContext actionContext)
{
var foo = actionContext.Request.Headers.Cookies; //that is not working
if (Authorize(actionContext))
{
return;
}
HandleUnauthorizedRequest(actionContext);
}

actionContext.Request.Headers 没有方法 Cookies,我也试过 actionContext.Request.Headers.GetCookies("Bar")像这样answer , 但 Header 没有 GetCookies 方法。

有什么想法吗?

最佳答案

string Authentication = string.Empty;
if (actionContext.Request.Headers.Contains("Cookie_Phone"))
{
Authentication = actionContext.Request.Headers.GetValues("Cookie_Phone")?.FirstOrDefault();
}

关于c# - 如何从 AuthorizeAttribute 自定义类的 HttpActionContext 获取 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51501491/

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