Web アプリケーションのセキュリティを強化しています。(正確にはセッション/メンバーシップ Cookie の有効期限)。認証前にページに移動しようとすると、奇妙なことに気付きました。ログインするとページが機能し、ログインする前にページにアクセスしようとすると、ログイン ページ (通常) にリダイレクトされますが、送信先の場所が正しくありません。URLの領域が抜けているようです。これはルートと関係があるのでしょうか?
さらに詳しい情報は次のとおりです。
web.config からのコード:
<authentication mode="Forms">
<forms loginUrl="~/logininformation/loginhomepage" timeout="2880" />
</authentication>
- 元の URL:
mysite.com/Display/Page/Index/62
- ログインにリダイレクトした後の URL:
mysite.com/logininformation/loginhomepage?ReturnUrl=%2fPage%2fIndex%2f62
- ログイン後のURL:
mysite.com/Page/Index/62
ログインコントローラーからのコード:
if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
&& !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
{
return Redirect(returnUrl);
}