我有一个 JavaScript 客户端,它使用
设置 cookiedocument.cookie = "username=John Doe; expires=Thu, 18 Dec 2019 12:00:00 UTC";
我想使用 ASP.NET Web API(在 .NET 4.5 上运行)在服务器端读取此 cookie,但是当我检查请求对象时,我没有看到 cookie。
我不确定您指的是哪个版本的 Asp.Net,但根据:
https://learn.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
。
如果您想在任何操作过滤器(例如授权)中使用cookie,请使用以下代码来访问它们。
public override void OnAuthorization(HttpActionContext context)
{
var cookie = context.Request.Headers.GetCookies("your-cookie-name").FirstOrDefault();
}
1.如果你想在服务中获取cookie值,那么你可以使用这个:-
服务等级
public class CookieService : ICookieService
{
private readonly IHttpContextAccessor _contextAccessor;
public CookieService(IHttpContextAccessor contextAccessor)
{
_contextAccessor = contextAccessor;
}
public string GetCookieValue()
{
string cookieValue = _contextAccessor.HttpContext.Request.Cookies["your Cookie Name"];
return cookieValue ?? string.Empty;
}
}
接口:-
public class ICookieService
{
string GetCookieValue();
}
你应该在你的startup.cs类中为IHttpContextAccessor添加注入依赖性
2.如果你想在控制器中获取cookie值,那么你可以使用这个:-
var cookieValue = HttpContext.Request.Cookies["your cookie value"].FirstOrDefault()