ASP.Net MVC: продолжительность сеанса? - PullRequest
0 голосов
/ 09 февраля 2012

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

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

Ложь означает, что мы не хотим иметь постоянный файл cookie

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

Я храню эти данные через связыватель модели.

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

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

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

Как мне получить эту систему?

Ответы [ 2 ]

1 голос
/ 09 февраля 2012

Я полагаю, что проверка подлинности Forms использует свое собственное время ожидания. Вы можете настроить ваш web.config соответственно:

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

    <sessionState timeout="50"  />
</system.web>
0 голосов
/ 22 мая 2012

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

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

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

...