使用 asp.net web api 读取 cookie

Posted

技术标签:

【中文标题】使用 asp.net web api 读取 cookie【英文标题】:Reading cookie using asp.net web api 【发布时间】:2020-03-24 08:02:39 【问题描述】:

我有一个使用

设置 cookie 的 javascript 客户端
document.cookie = "username=John Doe; expires=Thu, 18 Dec 2019 12:00:00 UTC";

我想使用 ASP.NET Web API(在 .NET 4.5 上运行)在服务器端读取这个 cookie,但是当我检查请求对象时,我看不到 cookie。

【问题讨论】:

【参考方案1】:

我不确定您指的是哪个版本的 Asp.Net,但根据:

https://docs.microsoft.com/en-us/aspnet/web-api/overview/advanced/http-cookies

您可以使用以下方式检索 cookie:

var userName = Request.Headers.GetCookies("userName").FirstOrDefault()?["userName"].Value;

在 web api 2 控制器中,您还需要引用 System.Net.Http

【讨论】:

【参考方案2】:

如果您想在任何操作过滤器(例如授权)中使用 cookie,请使用以下代码访问它们。

public override void OnAuthorization(HttpActionContext context)

    var cookie = context.Request.Headers.GetCookies("your-cookie-name").FirstOrDefault();

【讨论】:

以上是关于使用 asp.net web api 读取 cookie的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Web API 无法从 POST 正文中读取

ASP.NET Web API中的参数绑定总结

Asp.Net Web API 2第十三课——ASP.NET Web API中的JSON和XML序列化

Asp.net Web Api 重定向请求

ASP.NET Web API 中的表单

通过扩展让ASP.NET Web API支持JSONP