ASP.NET: исчезает ли FormsCookie по истечении периода аутентификации? - PullRequest
1 голос
/ 20 декабря 2010

Я пытаюсь установить некоторую проверку истечения времени ожидания аутентификации, и я заметил кое-что немного странное. Когда период аутентификации все еще действителен, следующий код даст мне cookie:

HttpCookie authCookie = context.Request.Cookies[".ASPXAUTH"]; // .ASPXAUTH name defined in web.config

Но когда период аутентификации истек, cookie больше не находится в массиве Cookies, и мой результат равен нулю. Я пытаюсь создать объект FormsAuthenticationTicket из файла cookie, чтобы иметь возможность проверить свойство с истекшим сроком действия. Как это:

FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);

// check if previously authenticated session is now dead
if (authTicket != null && authTicket.Expired)
{
    // send a Response indicating that they've expired.
}

Но если файл cookie исчезнет после истечения периода аутентификации, я даже не смогу зайти так далеко. Так я что-то не так делаю, или это печенье не должно быть там? А если нет, то как мне построить билет даже на проверить свойство Expired?

Большое спасибо.

Ответы [ 2 ]

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

Если для свойства isPersistent установлено значение false в FormsAuthenticationTicket, постоянный файл cookie не устанавливается.Когда срок действия билета истекает, cookie не отправляется вместе с запросом, поэтому вы не можете получить к нему доступ.

0 голосов
/ 20 декабря 2010

Файл cookie имеет значение истечения срока действия, которое можно указать в файле конфигурации. Нет большого предупреждения о том, когда истекает срок действия куки; Вы можете создать процесс, который проверяет каждый запрос, чтобы увидеть, на каком запросе он истек.

Однако учитывайте также элемент, для которого может потребоваться действительный пользователь (не анонимный), поэтому без cookie вы можете быть выгнаны.

Подробнее об этом здесь: http://support.microsoft.com/kb/910443

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