Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 从属性筛选器获取Cookie_Asp.net_Asp.net Mvc_Asp.net Web Api - Fatal编程技术网

Asp.net 从属性筛选器获取Cookie

Asp.net 从属性筛选器获取Cookie,asp.net,asp.net-mvc,asp.net-web-api,Asp.net,Asp.net Mvc,Asp.net Web Api,使用ASP.Net Web API 2,是否可以从AuthorizeAttribute筛选器获取cookie public class SessionFilter : AuthorizeAttribute { public override void OnAuthorization(AuthorizationContext filterContext) { // I need to read cookie values here //

使用ASP.Net Web API 2,是否可以从AuthorizeAttribute筛选器获取cookie

public class SessionFilter : AuthorizeAttribute
{
     public override void OnAuthorization(AuthorizationContext filterContext) 
     {
          // I need to read cookie values here
          // filterContext.??getCookies??

     }

}

要从AuthorizationContext获取cookies,请执行以下操作:

filterContext.HttpContext.Request.Cookies
方法中的示例:

public class SessionFilter : AuthorizeAttribute

{
     public override void OnAuthorization(AuthorizationContext filterContext) 
     {
          // I need to read cookie values here
          HttpCookie cookie = filterContext.HttpContext.Request.Cookies.Get("Cookie Name");    
     }

}

共享我的功能以在AuthorizationContext中实现i18n

  public override void OnAuthorization(System.Web.Mvc.AuthorizationContext filterContext)
    {
        string culureName = "en-US";
        HttpCookie cultureCookie = filterContext.RequestContext.HttpContext.Request.Cookies["lang"];
        if (cultureCookie != null
              && !string.IsNullOrWhiteSpace(cultureCookie.Value)
              && cultureCookie.Value != "null")
        {
            if (cultureCookie.Value == "en")
            {
                culureName = "en-US";
            }
            else if (cultureCookie.Value == "cn")
            {
                culureName = "zh-CN";
            }
        }
        Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(culureName);
        Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
        base.OnAuthorization(filterContext);
    }