ReturnUrl
クエリ文字列をログインページに渡そうとしています。私は部分的なログインビュー(ログインボックスのようなもの)とログインビューを持っています。今、私は私の部分図に以下の行を持っている:私は私のログインページにリダイレクトされますよASP.NET MVCのreturnUrlクエリ文字列をエンコードする
using (Html.BeginForm("Login"
, "Account"
, new { returnUrl=HttpUtility.UrlEncode(
Request.QueryString["ReturnUrl"])
?? HttpUtility.UrlEncode(Request.Path)
}
, FormMethod.Post))
私は、私の部分図のsubmitボタン(例えばから http://localhost:12345/Product/1234/Product1
)をクリックすると、次のURL:
http://localhost:12345/Account/Login?returnUrl=%2FProduct%2F1234%2FProduct1
しかし、私はログオンした場合、ページが
に戻っているので、私は、HTTP 400応答が表示されます。
また、間違った資格情報を入力すると、returnUrl
クエリ文字列が再びエンコードされるため、%
文字はすべて%25
に再度変換されます。私は手動で
http://localhost:12345/Account/Login?returnUrl=/Product/1234/Product1
を入力してログインした場合、私は言及する必要があります
、私が正常に指定したパスにリダイレクトしています。
私は何かが分かりません。しかし、何が見つかりませんでした。
ありがとうございました。
は自動的にエンコードされますか?自分でエンコードする必要はありません。 –