ログインページを実装しましたが、正常に機能し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"
なぜこれが起こるのですか?
回答ありがとうございますが、この特定のWebサイトではSession Stateを使用していないため、オプションではありません。ユーザーが初めてログインページにリダイレクトされたとき(制限されたページにアクセスした後)、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>