0

次のようなイントラネットアプリケーションに webseal を使用している 2 つの仮想 URL があります。

https://third-party-site.com/myapplication/Default.aspx
https://my-application.com/Default.aspx

それぞれのサイトからの認証が成功した後、内部的にhttps://original-url.com:8080/Default.aspxを指します。

Default.aspx ページから現在の URL を取得したい。Request.Url を試してみましたが、元の URL が返されます。すなわち。https://original-url.com:8080/Default.aspx

たとえば。https://third-party-site.com/myapplication/から既定のページにアクセスすると、現在の URL がhttps://third-party-site.com/myapplication/Default.aspxとして返されます。

現在、https://original-url.com:8080/Default.aspxとして返されています

仮想 URL 自体を取得する方法はありますか?

4

1 に答える 1

0

Request.Url はhttps://original-url.com:8080/Default.aspxを返します。これは IIS が受け取るものであるためです。インフラストラクチャについては説明していませんが、IIS の前にロード バランサーまたは何らかのルーターがあると思います。これらのサービスがX-Forwarded-Forと呼ばれる http ヘッダーを挿入することはよくあります (デファクト スタンダード) 。次の方法で取得できます。

if (Request.Headers["X-Forwarded-For"].Count > 0) { ... // use the real domain }

それが失敗した場合は、IIS の前に要求を処理するサービスのドキュメントを確認する必要があります。

于 2015-07-31T12:38:47.720 に答える