QueryString パラメータを複製している retunUrl に問題があります。
私のURLは次のようなものです:
"www.mysite.com/Order/?id=1&item=123"
次に、ログイン ページにリダイレクトすると、URL は次のようになります。
"www.mysite.com/login/RedirectUrl=/Order? id=1&item=123&id=1&item=123 "
ユーザーのログイン後、アクションは次の場所にリダイレクトされます。
"www.mysite.com/Order/? id=1&item=123&id=1&item=123"
私のページで Request.QueryString["id"] を使用すると、クエリ文字列「ID」が重複しているため、エラーが発生しました。
私のログイン アクション コードは次のようになります。
[HttpPost]
[AllowAnonymous]
public ActionResult Index(LoginModel model, string ReturnUrl)
{
if(VerifyLogin(model))
{
if(ReturnUrl != null)
return Redirect(ReturnUrl);//redirect to url with duplicated parameters
else
return Redirect("/Home");
}
else
{
ModelState.AddModelError("", "Invalid Username or Password");
}
return View();
}
どうすればこの問題を解決できますか?