Перенаправление страницы после окончания сеанса в ASP.Net MVC - PullRequest
1 голос
/ 03 апреля 2010

Я хотел бы сделать перенаправление на вход в систему после окончания текущего сеанса, и этот конфиг должен работать на любом Представлении и Контроллере .

Мой текущий код в 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");
}

Ответы [ 2 ]

2 голосов
/ 03 апреля 2010

Проверьте следующие настройки в в вашем файле web.config:

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

затем заполните следующий текст на вашем сайте. Мастер

if (Session.IsNewSession)
{
    Response.Redirect(PATH.GetPath() + "User/LogOn");
}
0 голосов
/ 03 апреля 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...