Срок действия файла cookie проверки подлинности с помощью форм не истек

Я пытаюсь реализовать очень простой механизм проверки подлинности форм Asp.net для сайта MVC. Проблема, которую я получаю, заключается в том, что срок действия моего файла cookie аутентификации истекает через год, тогда как я не хочу, чтобы он истекал через такое долгое время. Вот часть моего кода:

web.config

<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" timeout="2" />
</authentication>

контроллер

...
FormsAuthentication.SetAuthCookie(username, false);
...

Я нашел этот ответ (этот вопрос похож, но в моем случае тайм-аут никогда не возникает), но является ли это единственным способом истечения срока действия файла cookie, или я что-то здесь не так делаю?

Когда я просматриваю файл cookie, срок его действия истекает через год, хотя срок его действия истекает через пару минут, почему?

То, что я хочу, так или иначе, пользователь выходит из системы через некоторое время, и я подумал, установка срока действия в forms тег сделает работу?

1 ответ

Решение

Почти месяц, 100 просмотров и никаких ответов после того, как я нашел решение.

Во-первых, тайм-аут, указанный в web.config работает только в том случае, если cookie-файл установлен как постоянный, т.е. постоянный cookie-файл также может истечь. Изначально я ошибочно предполагал, что постоянный cookie не может просрочиться. Фактически, мой оригинальный код работал бы, если бы я всегда устанавливал cookie на постоянный характер.

Во-вторых, я полагаю, что поставщику членства не нужно, чтобы проверка подлинности с помощью форм работала, как указано в комментариях выше.

Вот как я сейчас создаю куки аутентификации:

HttpCookie authCookie = FormsAuthentication.GetAuthCookie(username, isPersistent);
if (!isPersistent)
{
    //this is because if it was not set then it got 
    //automatically set to expire next year even if 
    //the cookie was not set as persistent
    authCookie.Expires = DateTime.Now.AddMinutes(15);
}

Response.Cookies.Add(authCookie); 

Пожалуйста, дайте мне знать, есть ли альтернатива этому?

Другие вопросы по тегам