我已经实现了我的登录页面,它工作正常,但我无法从ReturnUrl
包含原始请求 URL 的查询字符串参数中读取。
例如,从该页面成功登录时:
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>