1

3か月前に基本的に私の質問をする投稿がありましたが、私のシナリオを処理できる回答が返ってこなかったため、再投稿しています。問題は、フォーム認証がASP.NETのログインページにリダイレクトされると、URLのハッシュ部分が失われるため(サーバーに送信されないため)、ログイン後にユーザーが正しい場所に誘導されないことです。ユーザーがリダイレクトされたときにハッシュ値を保存できることが提案されましたが、私の場合、ユーザーが電子メールのリンクからページにアクセスしているため、リダイレクトは機能しません。コードですが、web.configフォームの構成により自動的に行われます。ログイン後にユーザーが正しいハッシュベースのディープリンクに誘導されるようにするにはどうすればよいですか?

既存の投稿は次のとおりです。.netIE8ハッシュURLリダイレクト

これは、Javaで同じブラウザの動作を解決した方法に関する投稿です:http://forum.springsource.org/showthread.php ?101421-Preserving-URL-anchor-when-redirecting

ありがとう!

4

1 に答える 1

0

次の回避策で問題が修正されます。

1)電子メールリンクに、ハッシュアドレスのエンコードされたバージョンを含むクエリ文字列変数を含め、ハッシュアドレスの内容を含めます

        myUrl = baseUrl + "Account\" + acctId + "?route=%2FApplication%2FEntry" + "#/Application/Entry"

2)ログインページのサーバー側コードで、ルートを読み取り、それを使用して、ログイン後にログインページがリダイレクトするreturnUrlにハッシュ部分を追加します。

        if (returnUrl.Contains("?route="))
        {
            string[] split = returnUrl.Split(new string[] { "?route=" }, StringSplitOptions.None);
            var route = Server.UrlDecode(split[1]);
            returnUrl = split[0] + "#" + route;  
        }
于 2012-11-29T20:56:12.117 に答える