我在 localhost
上托管了 ASP.NET MVC 应用程序和 ASP.NET WebApi 应用程序和 localhost/api
并且我不想在调用 ASP.NET WebApi 的一个操作时设置 cookie。
我试着这样设置我的 cookie:
response.Headers.AddCookies(new[]
{
new CookieHeaderValue("test", "asd")
{
Expires = DateTime.Now.AddDays(1),
Domain = Request.RequestUri.Host,
Path = "/",
HttpOnly = false
}
});
我在响应 header 中得到了它:
Set-Cookie:test=asd; expires=Thu, 30 Oct 2014 09:53:35 GMT; domain=localhost; path=/
但由于某种原因,该 cookie 没有创建。
只是出于测试目的,我尝试像这样从 ASP.NET MVC 应用程序设置 cookie:
HttpContext.Response.Cookies.Add(new HttpCookie("test", "asd")
{
Expires = DateTime.Now.AddDays(1),
Domain = HttpContext.Request.Url.Host,
Path = "/",
HttpOnly = false
});
响应头包含:
Set-Cookie:test=asd; domain=localhost; expires=Thu, 30-Oct-2014 09:56:08 GMT; path=/
但我仍然看不到那个 cookie。我做错了什么,所以这些 header 被忽略了?但是,其他 cookie 可以正常工作(例如 .ASPXAUTH)。
最佳答案
您不能在本地主机上设置 cookie,至少不能使用 Chrome。
您至少需要一个由两部分组成的名称,例如mytestsite.local,或者你需要设置
Domain = null
在 C# 代码中。
关于c# - 无法通过操作设置 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26627886/