我有一个 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?
最佳答案
cookie = actionContext.Request.Headers.GetCookies("NameOfTheCookieIWant").FirstOrDefault();
if (cookie != null)
{
string val = cookie["NameOfTheCookieIWant"].Value;
}
关于c# - 有没有更好的方法在ActionFilterAttribute中获取cookie值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39257531/