Обработка обратных 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"]; "