2

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|

4

0 に答える 0