Файлы cookie Asp.NET возвращают ноль - PullRequest
3 голосов
/ 02 августа 2011

Я пытаюсь сохранить куки, когда кнопка нажимается так ...

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);
}

Тогда на page_load я читаю печенье ...

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

Но он продолжает возвращаться к нулю. Я запускаю это на локальном хосте и читаю, что куки не сохраняются на локальном хосте, поэтому я отредактировал файл хоста, чтобы сказать 127.0.0.1 test.cookie.com Когда я использовал Fiddler, чтобы увидеть, что публикуется в заголовке страницы. Похоже на это ...

тест / работа = сейчас тест =

Итак, я вижу, что он устанавливается, но по какой-то причине, когда я читаю его, он возвращает ноль.

Ответы [ 2 ]

8 голосов
/ 02 августа 2011

На page_load измените его с Response.Cookies на Request.Cookies.

Объект Response предназначен для отправки данных обратно. Объект Request содержит данные, которые передаются вам.

пример:

String a = Request.Cookies["test"]["work"];

Обратите внимание, что если cookie не существует, это приведет к исключению нулевой ссылки.

Обычно вы должны сделать что-то вроде:

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

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

}
5 голосов
/ 02 августа 2011

Попробуйте это

Response.Cookies["work"].Value = "Value1"

Для получения дополнительной информации см. это .

На странице загрузки для чтения файла cookie попробуйте

string value = Request.Cookies["work"].Value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...