c# - 无法通过操作设置 cookie

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

我在 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/

相关文章:

c# - 使用 C# 和 ASP.NET 在电子邮件附件中发送 SQL 报告

c# - 有没有办法获取div的样式属性?

c# - Asp.Net MVC 无法获取 .html 文件或 .xml 文件 404 错误?

c# - 调试异步代码时如何关闭蓝色时钟显示?

c# - 根据通用类型参数查询不同的列

c# - 在派生类 C# 中引发基类事件

c# - 使用 WebClient 时如何强制执行 SSL?

c# - 我在 foreach 期间收到 "Collection was modified; enumeration operation may not execute."

asp.net-mvc - 如何将模型绑定(bind)到 List<ViewModel>?

c# - 如何检测重叠的开始和结束日期时间(C#、ASP.NET、MVC)