无法从操作中设置cookie

时间:2014-10-29 10:24:51

标签: c# asp.net asp.net-mvc cookies asp.net-web-api

我有 ASP.NET MVC 应用程序与localhostlocalhost/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)。

1 个答案:

答案 0 :(得分:6)

您无法在localhost上设置Cookie,至少不能使用Chrome。

您至少需要两个部分名称,例如mytestsite.local,或者你需要设置

Domain = null

在C#代码中。