Asp.net 从属性筛选器获取Cookie
使用ASP.Net Web API 2,是否可以从AuthorizeAttribute筛选器获取cookieAsp.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 //
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);
}