【问题标题】:Get cookies from AuthorizeAttribute Filter从 AuthorizeAttribute 过滤器获取 cookie
【发布时间】:2014-06-16 16:31:35
【问题描述】:

使用 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??

     }

}

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-web-api


    【解决方案1】:

    从 AuthorizationContext 获取 cookie:

    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");    
         }
    
    }
    

    【讨论】:

      【解决方案2】:

      分享我在 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);
          }
      

      【讨论】:

      • 太棒了...它工作正常...特别感谢...
      猜你喜欢
      • 2019-01-01
      • 2010-11-13
      • 1970-01-01
      • 2019-08-16
      • 1970-01-01
      • 2014-01-20
      • 2011-12-19
      • 1970-01-01
      • 2018-08-21
      相关资源
      最近更新 更多