Asp.NET cookies返回null

Ric*_*n35 3 asp.net cookies

当点击一个按钮时,我正试图保存一个cookie ...

protected void btn_login_Click(object sender, EventArgs e)
{
   HttpCookie cookie = new HttpCookie("test");
   cookie["work"] = "now";
   cookie.Expires = DateTime.Now + new TimeSpan(1, 0, 0, 0);
   cookie.Domain = ".cookie.com";
   Response.Cookies.Add(cookie);
}
Run Code Online (Sandbox Code Playgroud)

然后在page_load上我正在阅读cookie ...

protected void Page_Load(object sender, EventArgs e)
{
    string a = Response.Cookies["test"]["work"];
}
Run Code Online (Sandbox Code Playgroud)

但它不断回归无效.我在localhost下运行这个,我读到cookies不会保存在localhost下所以我编辑了我的主机文件说127.0.0.1 test.cookie.com当我用Fiddler查看什么被发布到页面的标题.看起来像这样......

test/work = now test =

所以我可以看到它已经设置但是由于某种原因,当我在其中读取它时返回null.

Not*_*tMe 8

在page_load上将其更改Response.CookiesRequest.Cookies.

Response对象用于发回数据.Request对象包含传递给您的数据.

例:

String a = Request.Cookies["test"]["work"];
Run Code Online (Sandbox Code Playgroud)

请注意,如果cookie不存在,那么这将导致空引用异常.

通常你应该这样做:

protected void Page_Load(object sender, EventArgs e) {
  HttpCookie cookie = Request.Cookies["test"];
  String a = String.Empty;

  if (cookie != null) {
    a = cookie["work"];
  }

}
Run Code Online (Sandbox Code Playgroud)

  • 那是显而易见的,我无法相信我没有注意到我正在使用Response来读取cookie.有时它只是需要别人看它才能看到这些容易出错的错误.谢谢你的帮助. (2认同)

Pra*_*eth 5

试试这个

Response.Cookies["work"].Value = "Value1"
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅

在页面加载上读取cookie尝试

string value = Request.Cookies["work"].Value
Run Code Online (Sandbox Code Playgroud)