2010-12-13 5 views
1

Я хочу сохранить некоторые пользовательские настройки объекта Session. И получить его из Сессии, если он понадобится. по этой причине я хочу создать базовый контроллер, который наследует от этого BaseController другие контроллеры. и хотите проверить сеанс на null. если сеанс имеет значение null, то перенаправление на страницу входа в систему. я добавилasp.net mvc session object

<authentication mode="Forms"> 
     <forms loginUrl="~/Membership/LogOn" timeout="1" defaultUrl="~/Membership/LogOn" /> 
    </authentication> 

в файл webconfig. через минуту он перенаправляется на страницу LogOn. Но я знаю, что моя сессия закончится через 10 минут. как я могу сделать так, чтобы объекты Session и httpContext.Request.IsAuthenticated умирали в одно и то же время?

и сообщите мне, в каком событии я должен проверить сеанс в BaseController. в OnActionExecuting?

+0

Это предложение было задано [до] (http://stackoverflow.com/questions/454616/asp-net-cookies-authentication-and-session-timeouts). Но принятый ответ заключался только в добавлении данных в билет аутентификации. Вы уверены, что не могли бы просто сделать это ...? – rsenna

+0

Это не то, что мне нужно. httpContext.Request.IsAuthenticated возвращает false, но сеанс еще не умирает. – AEMLoviji

ответ

0

Я сделал это. 1. Я создал сессию Global.asax файл в session_start() событие 2. я настроил IIS так, что моя сессия истекает через (5 минут) 3. и добавил этот раздел файла web.config

<authentication mode="Forms"> 
      <forms loginUrl="~/Membership/LogOn" timeout="5" defaultUrl="~/Membership/LogOn" /> 
    </authentication> 

и теперь httpContext.Request.IsAuthenticated вернет false, если сеанс будет выполнен. потому что тайм-аут оба они составляют 5 минут