логин пользователя не запоминается - PullRequest
1 голос
/ 06 апреля 2011

Привет, по какой-то причине пользователи автоматически выходят из системы через несколько минут.

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

<authentication mode="Forms">
      <forms loginUrl="~/Account/LogOn" timeout="1440" slidingExpiration="true" />
    </authentication>

Это выполняется, когда пользователь входит в систему:

  private void CreateAuthTicket(string userName, bool rememberMe, string userData)
     {
        FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(
1,userName,DateTime.Now,DateTime.Now.AddDays(1),rememberMe,userData);

         string encTicket = FormsAuthentication.Encrypt(authTicket);
         HttpCookie faCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
         Response.Cookies.Add(faCookie);
      }

Ответы [ 5 ]

1 голос
/ 06 апреля 2011
if(rememberMe) {
  faCookie.Expires(DateTime.Now.AddDays(5)); //or something else here
}
0 голосов
/ 07 апреля 2011

Это локально или в размещенной среде?Провайдеры виртуального хостинга иногда устанавливают очень низкий срок службы, чтобы регулярно высвобождать ресурсы.Если это происходит только при развертывании сайта, было бы неплохо проверить у своего провайдера, каковы его настройки.Однажды у меня был хостер, который установил их время жизни в 5 минут (!!), что вызвало аналогичные проблемы.

0 голосов
/ 07 апреля 2011

Если изменение периода cookie не работает для вас.Возможно, вам понадобится сгенерировать ключ компьютера для вашего сайта.Это помогло решить проблему «Не помню меня» в прошлом.

Генератор ключей машины

0 голосов
/ 06 апреля 2011

Cookies можно отключить в браузере, проверьте тоже

0 голосов
/ 06 апреля 2011

В сеансовых файлах cookie в IIS задано время ожидания.Это может быть причиной истечения сеанса.

По умолчанию функция «Запомнить меня» в MVC должна создавать постоянный файл cookie.

...