2010-04-03 2 views
1

Я хотел бы сделать переадресацию для входа, когда текущий конец сеанса и конфигурации должны работать в любом View и контроллера.Page Перенаправление когда конец сессии в ASP.Net MVC

Мой текущий код в Global.asax:

protected void Session_End(object sender, EventArgs e) 
{    
    Session.Abandon(); 
    //GetPath() is getting currently path 
    // eg. http://localhost/mymvcproject 
    Response.Redirect(PATH.GetPath() + "User/LogOn"); 
} 

ответ

0

Я не думаю, что ваш код может работать, потому что Session_End() более обычно вызываются, когда нет никакого запроса сделана в браузере после определенной продолжительность. Поэтому Response здесь не будет соответствовать никакому конкретному запросу и, таким образом, не будет перенаправления.

Вместо этого попробуйте обращаться Application_Start и проверьте наличие Session.IsNew. Если это true, выполните перенаправление. (Подумайте об этом, обратившись к FormsAuthentication.RedirectToLoginPage().)

При проверке на IsNew, остерегайтесь описанной ситуации here. Я предполагаю, что назначение какой-либо фиктивной переменной сеанса во время процесса входа будет касаться этого, хотя я и не пробовал себя.

2

Проверьте следующие настройки под <system.web> в файле web.config:

<sessionState mode="InProc" cookieless="false" timeout="1"></sessionState> 

затем заполнить следующий текст в Site.Master

if (Session.IsNewSession) 
{ 
    Response.Redirect(PATH.GetPath() + "User/LogOn"); 
} 
Смежные вопросы