2016-08-08 4 views
0

Я работаю над проектом web-проектов asp.net C#. Я хочу перенаправить на страницу login.aspx, когда истечет срок действия сеанса. У меня есть javascript-решения, доступные в Интернете, которые работают нормально. Однако мне бы хотелось, чтобы он работал на странице global.asax, чтобы код был в одном месте. Я попытался перенаправить из события Session_End в Global.asax, но не работал как объект Response и Request, доступный для этого события. Были некоторые ссылки на использование события Application_AcquireRequestState, как в Redirecting to another page on Session_end event, но он тоже не работал. Любая помощь приветствуется.Как перенаправить на login.aspx страницу с Global.asax при завершении сеанса

Благодаря

ответ

1

Это было некоторое время, так как я жил в мире .NET, но, насколько я помню, Session_End пожаров на сервере без какого-либо запроса запуска его. Другими словами, когда истекает время сессии, загорится Session_End. В этот момент у вас не будет запроса.

Кроме того, если вы когда-нибудь понадобится, чтобы перейти на внешних сессий, Session_End не будет огонь:

https://blogs.msdn.microsoft.com/amb/2011/06/03/session_onend-or-session_end-events-in-global-asax-wont-fire-if-you-store-asp-net-sessions-out-of-proc-in-state-server-or-sql-server/

Таким образом, вы не можете полагаться на Session_End в первую очередь.

Поскольку у вас нет запроса, вы не можете делать перенаправление с сервера. У вас есть, чтобы сделать это в JavaScript. Но если вам действительно нужно, чтобы сервер «нажимал» перенаправление на любые подключенные клиенты, вы можете использовать WebSockets для этого. (Я думаю, что это была бы плохая идея.)

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