我有 ASP.NET MVC 应用程序与localhost
和localhost/api
上的 ASP.NET WebApi 应用程序一起托管,我想要' t当 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
}
});
我在回复标题中得到了这个:
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工作正常(例如.ASPXAUTH)。
答案 0 :(得分:6)
您无法在localhost上设置Cookie,至少不能使用Chrome。
您至少需要两个部分名称,例如mytestsite.local,或者你需要设置
Domain = null
在C#代码中。