У меня есть ActionFilterAttribute, который должен получить значение cookie из запроса. Вот соответствующий код:Есть ли лучший способ получить значение cookie в ActionFilterAttribute?
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;
}
});
Так что я должен идти в заголовки и получить заголовок печенья, который содержит имя куков я хочу. Но это дает мне коллекцию CookieHeaderValues, поэтому я должен взять первый из них, который сам содержит свойство Cookies, которое представляет собой коллекцию CookieStates. Я превращаю эту коллекцию в список и запускаю forEach на ней, пока не найду CookieState, чье имя совпадает с именем куки-файла, которое я хочу, а затем сохраните значение этого CookieState.
Мне кажется сумасшедшим, что мне нужно пройти столько, чтобы получить значение cookie. Наверняка есть лучший, более прямой способ получить один конкретный куки-файл, чье имя я знаю, и его ценность?
Ваш вопрос о проекте MVC или WebApi? Добавьте соответствующий тег. Однако, похоже, это касается WebApi. –
Я знал, что забыл. Спасибо, добавлен тег asp.net-web-api. –