【发布时间】:2014-12-25 00:17:06
【问题描述】:
我有 ASP.NET MVC 应用程序与 ASP.NET WebApi 应用程序一起托管在 localhost 和 localhost/api 并且我不想设置 cookie ASP.NET WebApi 的一项操作被调用。
我试图这样设置我的 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。我做错了什么,怎么可能会忽略这些标头?但是,其他 cookie 工作正常(例如 .ASPXAUTH)。
【问题讨论】:
-
“看不到那个 cookie”是什么意思?你在看哪里?
-
@SveinFidjestøl document.cookie 和 Chrome 开发工具中的“资源”选项卡
-
你不能在本地主机上设置cookies,至少不能用Chrome。您至少需要一个由两部分组成的名称。见stackoverflow.com/questions/7346919/…
-
@SveinFidjestøl Domain = null 做了一个技巧,非常感谢。你能把它格式化为答案吗?
-
没问题,我已经在下面输入了答案
标签: c# asp.net asp.net-mvc cookies asp.net-web-api