ASP.NET MVC: закрытие сеанса и принудительный вход в систему даже с «Запомнить меня» - PullRequest
2 голосов
/ 15 июля 2011

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

Я использую службу аутентификации, которая поставляется с новым проектом MVC, FormsAuthenticationService для входаи установите .ASPAUTH cookie

public void SignIn(string userName, bool createPersistentCookie)
{
    if (String.IsNullOrWhiteSpace(userName)) throw new ArgumentException("Value cannot be null or empty.", "userName");

    FormsAuthentication.SetAuthCookie(userName, createPersistentCookie);
}

Cookie установлен правильно, с датой истечения срока, установленной в будущем.Я также настроил свой web.config со следующими настройками:

<authentication mode="Forms">
    <forms loginUrl="~/Account/Login" 
           timeout="2880" 
           slidingExpiration="false" />
</authentication>

<sessionState mode="InProc" cookieless="false" timeout="2881"></sessionState>

Я также установил все настройки, которые я могу придумать в IIS, которые могут это делать, включая настройку времени простоя в приложениипул (который был подозрительно установлен на 20 минут) на 480 minutes.

Почему у меня истекает время сеанса, из-за чего пользователям приходится снова входить в систему?Как я могу сделать так, чтобы пользователь не вышел из системы, когда их cookie «запомнить меня» установлен?

1 Ответ

0 голосов
/ 15 июля 2011

Запомнить меня не держит вас в системе. Он просто запоминает ваше имя пользователя при следующем входе в систему.

Мне интересно, почему вы выходите из системы через 20 минут после того, как вы установили тайм-аутхотя в web.config.Если вы используете firebug и проверяете дату истечения срока действия куки-файла auth, что он говорит?

Некоторые другие идеи:

  1. Использование постоянного куки-файла auth с вашим методом SignIn ()
  2. Установить FormsAuthentication SlidingExpiration true в web.config
  3. Установить отладку компиляции = "false" в web.config, чтобы остановить перезагрузку домена приложений
  4. Проверить правильность времени на сервере - он используетчтобы сравнить это с файлом cookie
  5. Проверьте, что вы редактируете правильный файл web.config - я случайно внес изменения в файл Views ранее:)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...