cookie для аутентификации - PullRequest
0 голосов
/ 28 июля 2010

Используя Asp.Net MVC 1, у меня есть элемент управления / страница "войти в систему" ... Я отмечаю флажок "запомнить меня" и нажимаю "отправить" ... в моем контроллере у меня есть:

FormsAuth.SignIn(userName, password, rememberMe)

Этот метод создает постоянный файл cookie .ASPXAUTH, и в этот момент все хорошо. Я установил точку останова на другом контроллере и заметил, что как только я вошел на сайт ... для следующего "постбэка" или обновления страницы.... файл cookie .ASPXAUTH исчез из коллекции файлов cookie ... так что ... когда я возвращаюсь на сайт, даже когда я выбрал опцию "запомнить меня" ... он снова запрашивает мои учетные данные в форме входа в систему ...

есть идеи, почему это происходит?


ОБНОВЛЕНО:

Я думаю, что это не проблема с MVC.Я создал новое приложение с WebForms, страница содержит 1 текстовое поле, 1 кнопку для создания файла cookie ... и другую кнопку для записи файла cookie в метку. http://screencast.com/t/MjQ1MTVmYWU

это мой код:

protected void Button1_Click(object sender, EventArgs e)
{
    HttpCookie cookie = new HttpCookie("test");
    cookie.Value = TextBox1.Text;
    cookie.Expires = DateTime.Now.AddMinutes(1);

    Response.Cookies.Add(cookie);
}//with a breakpoint here, I "watch" the Response.Cookies collection and I can see my "test" item there.

protected void Button2_Click(object sender, EventArgs e)
{//with a breakpoint here. the Response.Cookies collection is empty.
    Label1.Text = Response.Cookies["test"].Value ?? "null";
}

У меня тот же результат ... cookie правильно добавлен в коллекцию Response.Cookies, но во втором постбэке коллекция снова пуста ..

результат ..метка получает значение «ноль».

может быть, какая-то конфигурация?Я никогда раньше не работал с куки.

1 Ответ

0 голосов
/ 28 июля 2010

Как я уже говорил, это первый раз, когда я работаю с cookie-файлами ...

проблема была в том, что ... для получения значения я должен использовать коллекцию Request.Cookies вместо Response.Cookies... это звучит разумно, потому что запрос отправляется из браузера .. (моя ошибка xP)

итак, в итоге ...

  1. Response.Cookies для создания куки
  2. cookie сохраняется в браузере
  3. Request.Cookies для получения значения cookie

Спасибо всем!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...