Response.Redirect を使用する Web ベースのアプリケーションがあります。
例: Response.Redirect(" http://app_domain.com/userhome.aspx ")
フォームベースの認証の直後に、Web ブラウザを適切なホームページにリダイレクトします。クライアントとサーバーが同じネットワーク上にある場合、これは正常に機能します。
このアプリケーションにリバース プロキシ経由で外部からアクセスする必要があるユース ケースがあります (EZProxy を使用しています)。したがって、Web ブラウザーはリバース プロキシに接続し、リバース プロキシはアプリケーション サーバーに接続します。この場合、リバース プロキシはすべての要求と応答を書き換えます。Web ブラウザーのアドレス バーの URL は、http://app_domain.com.reverseproxy.com/のようなものです。ユーザーは、ブラウザでサインイン ページにアクセスし、資格情報を入力して、サインイン ボタンをクリックできます。ただし、サインインが成功した直後の Response.Redirect は、ブラウザーをhttp://app_domain.com/userhome.aspxにリダイレクトすることでフローを中断しているようです。このドメインはファイアウォールの背後にあるため、ブラウザーはこのドメインに直接接続できません。
この質問は、ASP.NET AJAX 呼び出しの Response.Redirect に似ています。しかし、その質問には満足のいく答えがありません。
次のような相対パスを使用することは可能ですか
Request.Redirect("~/Userhome.aspx")
それとも、ブラウザに渡す前にサーバー側で解決されますか?
望ましい結果は、Web ブラウザーのアドレス バーに表示されるドメイン/URL を考慮したリダイレクト メカニズムです。
フィドラーを使用すると、これが表示されます。その最後のリダイレクトは、リバース プロキシ フレンドリーではありません。
HTTP/1.1 200 OK
キャッシュ制御: キャッシュなし
プラグマ: no-cache
コンテンツ タイプ: テキスト/プレーン。文字セット=utf-8
期限切れ: -1
サーバー: Microsoft-IIS/7.0
セット Cookie: .ASPXAUTH=BE3D7796245FEEA18FF92C9BD4B3F68F08C9E22CA209A139FBDC45BD6633788E6E68EE30F2BAE7EB223CA8F492FA93DFE7AB2723A848C6E75DF87B613075AF418D5179; パス=/; HttpOnly
Set-Cookie: .ASPXAUTH=693B8AC69ABB53F7468466C6D10C9BF5BAFB860F76FC557E3DAD9C733223957E3A46FF8E21E6822CD5420F1724C61809DC83FDE7C8E3DF9D4E972E61F7DDEE05C61E8D8AA97107B5B68412AFC347; パス=/; HttpOnly
X-Powered-By: ASP.NET
日付: 2012 年 6 月 15 日 (金) 20:41:32 GMT
コンテンツの長さ: 64
46|ページリダイレクト|| http://app_domain.com/UserHome.aspx|