我有一个ActionFilterAttribute需要从请求中获取一个cookie值。下面是相关的代码:有没有更好的方法来获取ActionFilterAttribute中的cookie值?
List<CookieState> cookies = actionContext.Request.Headers.GetCookies("NameOfTheCookieIWant").FirstOrDefault().Cookies.ToList();
if (cookies == null)
{
throw new ArgumentNullException("cookie");
}
string value = "";
cookies.ForEach(cookie => {
if (cookie.Name == "NameOfTheCookieIWant") {
value = cookie.Value;
}
});
所以,我必须进入页眉和获得cookie头包含我想要的cookie的名称。但是,这给了我CookieHeaderValues的集合,所以我必须采取其中的第一个,它本身包含Cookie属性,它是CookieState的集合。我把这个集合变成一个列表,并在其上运行forEach,直到找到名称与我想要的cookie名称匹配的CookieState,然后保存该CookieState的值。
对我来说,我似乎很疯狂,我需要经过这么多才能获得cookie值。当然,有一种更好,更直接的方式来获得一个特定的cookie,我知道谁的名字和它的价值?
是关于MVC或WebApi项目的问题吗?请添加相关标签。但它似乎是关于WebApi的。 –
我知道我忘了一个。添加了asp.net-web-api标签,谢谢。 –