c# - 有没有更好的方法在ActionFilterAttribute中获取cookie值?

标签 c# .net cookies asp.net-web-api actionfilterattribute

我有一个 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/

相关文章:

使用 cookie 的 JavaScript 登录

cookies - 浏览器不保留响应 header 中的 cookie

c# - MVC @RenderPage 不工作

c# - 如何反序列化对结构等效项的引用集合?

.net - 是否可以使用 System.Diagnostics.Trace 作为 .net 的公共(public)日志记录形式?

c# - 来自异步序列化操作的 MissingMethodException

c# - 如何在 C# 中使用反射检查集合类型属性的相等性

c# - 保护 API 免受 SQL 注入(inject)

c# - WPF如何动态绑定(bind)图像?

javascript - 我可以获取特定域的所有 cookie 作为 ';' 分隔的字符串吗?