2016-08-13 8 views
2

Автоматический выход из системы за несколько секунд, я хочу увеличить его до 30 минут.Как увеличить время ожидания сеанса в Asp .Net MVC 5?

Я сделал некоторый код в файле web.config, но он не работает. Я исследовал много статей, но я не мог его решить.

код Web.config:

<sessionState mode="InProc" timeout="1800"></sessionState> 
    <authentication mode="Forms"> 
     <forms loginUrl="~/Login" timeout="1800"> 
     </forms> 
    </authentication> 
+0

Конфигурация, которую вы показываете, работает. Если ваши сеансы по-прежнему кажутся тайм-аутами, происходит что-то еще. Объясните, как выглядит ваша среда хостинга, покажите соответствующий код, который использует сеанс, и объясните, какое поведение вы испытываете. – CodeCaster

ответ

0

Еще одно место, это может быть установлен в файле Global.asax. Если sessionState не работает в вашем файле web.config, я предлагаю взглянуть туда. По-видимому, файл Global.asaxбудет переопределить файл web.config. Он может быть установлен следующим образом:

Session.Timeout = 30;//Timeout expects an integer representing minutes 
+0

Я сделал это, но дал мне ошибку «Состояние сеанса в этом контексте недоступно». –

+0

Я не предлагаю такой подход, но я протестировал его внутри Session_Start без каких-либо ошибок. – QMaster

1

состояние сеанса & аутентификация тайм-ауты в течение нескольких минут не секунды. Таким образом, вы должны иметь

<sessionState mode="inProc" timeout="30" ></sessionState> 
<authentication mode="Forms"> 
     <forms loginUrl="~/Login" timeout="30"> 
     </forms> 
</authentication> 

Кроме того, следует иметь в виду, что способ это установка, аутентификация таймаут 30 минут после того, как он получил во время сеанса продлит 30 минут, чтобы быть от последнего доступа. Чтобы сделать эти два ближе к синхронизации, вы должны добавить slideExpiration = "True" в элемент forms.

Если после этих изменений, он по-прежнему регистрации вам через несколько секунд, возьмите посмотрите на:

  1. получает создан печенье на сайте? Это имя будет .ASPXAUTH, и это должно быть cookie сеанса.
  2. Завершите ли вы браузер, когда произойдет таймаут?
  3. У вас есть несколько приложений, использующих один и тот же метод аутентификации?
+0

По умолчанию для sessionState является slideExpiration = "True", поэтому нет необходимости устанавливать его неявно – Dror

+0

slideExpiration заставляет таймер начинать с конца срока в некоторых случаях. Но есть еще много причин для изменения периода ожидания. –