C# 如何从AuthorizeAttribute自定义类上的HttpActionContext获取cookie?

C# 如何从AuthorizeAttribute自定义类上的HttpActionContext获取cookie?,c#,asp.net-mvc,asp.net-web-api,cookies,C#,Asp.net Mvc,Asp.net Web Api,Cookies,我正在验证存储在cookies上的令牌,因此创建了一个类 public class VIEWAuthorizeAttribute : AuthorizeAttribute 然后我超越了OnAuthorization类 public override void OnAuthorization(AuthorizationContext filterContext) { var cookie = filterContext.HttpContext.Request.Cookies.Get("Pr

我正在验证存储在cookies上的令牌,因此创建了一个类

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控制器很好,但当我尝试对WebAPI控制器执行类似操作时,我无法从请求中获取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”)
,但Header没有方法
GetCookies


有什么想法吗?

您可以使用
HttpContext.Current
,因为我看不到任何其他方法可以访问当前上下文。出于某种原因,
HttpActionContext
无法访问实际的
HttpRequest
您对
actionContext.Request.Headers.GetCookies
方法的具体问题是什么?这一个应该做这项工作欢迎这么做。请提供更多关于您答案的信息,解释问题所在以及您的答案如何解决问题。
string Authentication = string.Empty;
if (actionContext.Request.Headers.Contains("Cookie_Phone"))
{
    Authentication = actionContext.Request.Headers.GetValues("Cookie_Phone")?.FirstOrDefault();
}