C# 如何从AuthorizeAttribute自定义类上的HttpActionContext获取cookie?
我正在验证存储在cookies上的令牌,因此创建了一个类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
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();
}