ASP.NEt Обнаружение и отображение сообщения с истекшим сроком действия сеанса

#asp.net-mvc-3

#asp.net-mvc-3

Вопрос:

У меня есть мой MVC ASP.NET настройка web.config, подобная приведенной ниже:

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

По истечении срока действия сеанса он автоматически переходит на страницу входа в систему. Это может сбить с толку конечных пользователей. Было бы неплохо показать сообщение «Срок действия сеанса истек, пожалуйста, повторно войдите в систему».

Не мог бы кто-нибудь, пожалуйста, рассказать мне, как достичь вышеуказанного? Сообщение может быть одностраничным или даже находиться на самой странице входа.

Огромное спасибо.

Ответ №1:

глобальный.asax

 
protected void Session_Start(object src, EventArgs e)
{
    if (Context.Session != null amp;amp; Context.Session.IsNewSession)
    {
        string sCookieHeader = Request.Headers["Cookie"];
        if (null != sCookieHeader amp;amp; sCookieHeader.IndexOf("ASP.NET_SessionId") >= 0)
            Response.Redirect("/Session/Timeout");
    }
}
  

web.config

 <sessionState mode="InProc" timeout="/*duration*/"/>
  

Комментарии:

1. Спасибо, Дэвид, должно ли это быть Session_End вместо этого?

2. я не думаю, что вы можете перенаправить с Session_End