Обработка обратных URL-адресов с помощью веб-форм и маршрутов ASP.NET

У меня есть приложение веб-форм ASP.NET (не MVC), настроенное с использованием маршрутов, которые определены в моем файле Global.asax следующим образом;

routes.Add("Login", New Route("login", New CustomRouteHandler("~/authenticate.aspx")))
routes.Add("AdditionalInfo", New Route("additional-information", New CustomRouteHandler("~/secure/additionalInfo.aspx")))

В некоторых точках приложения требуется аутентификация пользователя, которая просто перенаправит его на экран входа в систему.

У меня проблема в том, как бы я перенаправил их обратно в точку, где требовалась аутентификация? Со стандартными URL болота я бы сделал что-то вроде;

http://www.site.com/login.aspx?returnURL=someReturnURL

Возможно ли это даже с маршрутами в веб-формах?

2 ответа

Решение

Получите параметр QueryString для события Page_Load и сохраните его в

ViewState["returnURL"] = Request.QueryString["returnURL"];

Затем в событии нажатия кнопки выполните перенаправление при успешной аутентификации:

Response.Redirect(ViewState["returnURL"].ToString());

Обычно, когда пользователь нажимает кнопку входа, URL-адрес не изменяется. Таким образом, вы все еще можете прочитать данные, используя 'Request.QueryString["returnURL"]; "

Другие вопросы по тегам