MVC3: Как остановить истечение сеанса через 30 минут? - PullRequest
0 голосов
/ 27 июня 2011

Я пытаюсь изменить время окончания сеанса.Мои взгляды проверяют сеанс с <Authorize()>, который прекрасно работает.

Я создаю сеанс следующим образом:

FormsAuthentication.SetAuthCookie(model.UserName, True)
Return RedirectToAction("Welcome", "Home")

Мой пароль подтвержден с помощью

FormsAuthentication.Authenticate(username, password)

Мой маршрут web.config имеет внутри system.web

<sessionState timeout="7200"></sessionState>

Мой узел авторизации выглядит следующим образом:

<authentication mode="Forms">
  <forms loginUrl="~/Home/Login" timeout="7200" cookieless="UseCookies" name=".LoginCookie" slidingExpiration="true" >
    <credentials passwordFormat="Clear">
      <user name="user" password="pass" />
    </credentials>
  </forms>
</authentication>

После входа в систему я даже могу проверить, что определенный файл cookie 'LoginCookie' устарел через несколько дней, но все же, если яя неактивен в течение 30 минут, мой пользователь отправляется на страницу входа в систему.

Наконец, в Visual Studio это работает нормально, как всегда для сайтов, которые я делал, но по какой-то причине один раз в IISэто не так (производственная среда).

Любая помощь по тому, что я, возможно, пропустил, очень ценится.

1 Ответ

3 голосов
/ 27 июня 2011

Это, вероятно, когда ваш пул приложений IIS настроен на переработку. Переменные кэша теряются, если они не хранятся на сервере SQL или сервере состояний.

Проверьте настройки в AppPool в IIS. При необходимости вы можете увеличить время простоя.

Также читайте эту статью: http://support.microsoft.com/default.aspx?scid=kb;en-us;324772

...