Я внедрил мою страницу входа, и она работает нормально, но я не могу прочитать из параметра строки запроса ReturnUrl
, который содержит исходный запрошенный URL.Невозможно прочитать строку запроса ReturnUrl
Например, при успешном входе в систему с этой страницы:
http://whatever/Login.aspx?ReturnUrl=%2fAdmin%2fmenu-link.aspx
я получаю следующее:
Context.Request.QueryString["ReturnUrl"] = null
Context.Request.Params["ReturnUrl"] = null
Context.Request.Url.ToString() = "http://localhost/Login.aspx"
UrlReferrer = "http://localhost/Login.aspx?ReturnUrl=/Admin/menu-link.aspx"
Почему это происходит?
Спасибо за ответы, но я не использую состояние сеанса на этом конкретном веб-сайте, поэтому это не вариант для меня. В первый раз, когда пользователь перенаправляется на страницу входа в систему (после доступа к странице с ограничениями), я могу правильно видеть строку запроса в page_load, однако она теряется при обратной передаче.
Вот мой код страницы, я не знаю, почему она не сохраняющееся:
<body>
<form id="form1" action="Login.aspx" runat="server" defaultbutton="btnLogin">
//Bunch of html
<asp:Button TabIndex="5" CausesValidation="true" runat="server" ID="btnLogin" Text="Log In" onclick="btnLogin_Click" /></div>
</div>
</form>
</body>
Где на жизненном цикле вы читаете 'QueryString'? Глядя на свой полный URL-адрес в качестве реферера, я бы предложил вам прочитать его на странице после входа в систему? – RemarkLima
Я читаю его в событии кнопки на странице входа. На той же странице я не знаю, почему это происходит. – TheGateKeeper