0

Из-за сложной бизнес-логики мне пришлось реализовать аутентификацию. Я храню аутентификацию с:ASP.Net MVC: продолжительность сеанса?

FormsAuthentication.SetAuthCookie (идентификатор, ложь);

Ложное это указывает, что мы не хотим, чтобы иметь постоянные Cookie

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

Я храню эти данные с помощью связующего.

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

Я бы хотел, чтобы продолжительность моего сеанса была такой же, как сеанс входа в систему, чтобы избежать такого рода «Я зарегистрирован, но я потерял некоторые данные в сеансе».

Мне не нужно/нужно иметь постоянное соединение.

Как мне перейти к этой системе?

ответ

0

На самом деле, Был таймаут сеанса по умолчанию в пуле приложений IIS, поэтому, чтобы избежать этой проблемы:

  1. Перейти на IIS Диспетчер
  2. Перейти на вкладку ServerName/Пулы приложений
  3. правой кнопкой мыши на соответствующем пуле приложений
  4. Нажмите на Advanced Settings,
  5. В разделе «Модель процесса», поставить более высокое значение в «ожидания тайм-аута» (это в течение нескольких минут
  6. Нажмите на кнопку OK
  7. Перезапуск пула приложений

Для меня это + конфигурация Yannis (установка того же значения для таймаута формы + тайм-аут состояния сеанса).

1

Я считаю, что FormsAuthentication использует свой собственный тайм-аут. Вы можете настроить web.config соответственно:

<system.web> 
    <authentication mode="Forms"> 
      <forms timeout="50"/> 
    </authentication> 

    <sessionState timeout="50" /> 
</system.web> 
+0

Я тестировал: с «2880» в качестве значения для двух таймаутов, но часто у меня есть значение сеанса, которое устанавливается при входе в систему, которое равно null, в методе «Авторизация» (так что я все еще связанный) – J4N