2014-09-17 3 views
0

Я хочу, чтобы после завершения сессии я хотел бы перенаправить на контроллер действия. Добавлен метод Session_OnEnd в файле Global.asax. Смотрите ниже код:Session_OnEnd в Global.asax перенаправление на действие контроллера MVC ASP.NET

Global.asax:

public void Session_OnEnd() 
{ 
    //redirect to controller action here 
} 

Сначала я был «Response.RedirectToRoute» внутри метода, но бросает исключение, и не может работать технически.

+1

Когда сессия заканчивается, это просто наблюдение, что пользователь не послал никаких запросов на сервер в последнее время. У вас нет выдающегося запроса в браузере пользователя, поэтому у вас нет возможности отправить * что-нибудь * на него, чтобы заставить его что-либо сделать. HTTP - запрос/ответ, сервер не может * инициировать * действие с клиентом. –

+0

@Damien_The_Unbeliever Веб-сокеты на помощь !!!!!!! –

ответ

2

Вы не можете этого сделать. Session_End может быть запущен без фактического контекста HTTP. Пользователь, возможно, даже закрыл свой браузер задолго до того, как это событие будет запущено, поэтому перенаправить его некуда. Объекты запроса и ответа недоступны.

Но вы можете создать собственный ActionFilter для решения этой проблемы.

Redirect at Session Timeout in Global.asax in mvc4

Detecting Session expiry on ASP.NET MVC

Detecting Session Timeouts using a ASP.Net MVC Action Filter

+0

Спасибо @Mohsen Esmailpour, я попробую это :) – felixgondwe

Смежные вопросы