1

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);
                }
4

1 に答える 1