【发布时间】:2017-01-08 12:16:56
【问题描述】:
我有一个 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 的集合,所以我必须取其中的第一个,它本身包含一个 Cookies 属性,它是 CookieStates 的集合。我将这个集合变成一个列表并在其上运行一个 forEach,直到找到名称与我想要的 cookie 名称匹配的 CookieState,然后保存该 CookieState 的值。
对我来说,我需要经历这么多才能获得一个 cookie 值,这似乎很疯狂。肯定有更好、更直接的方法来获取一个我知道的特定 cookie,它的名字和价值?
【问题讨论】:
-
您的问题是关于 MVC 还是 WebApi 项目?请添加相关标签。不过,这似乎与 WebApi 有关。
-
我知道我忘记了一个。添加 asp.net-web-api 标签,谢谢。
标签: c# .net cookies asp.net-web-api actionfilterattribute