2017-03-31 21 views
0
user --> internet --> server1 (iis proxy) --> server2 (hosting the website) 

私は絶対URLを取得しようとしています。asp.net mvc絶対URLを取得する(プロキシの背後にある)

http://192.168.0.3/Foo/Bar/5 

どのようにこれをすることができます。しかし、今の代わりに、私は内部のIPと、この絶対URLを受け取る

string fullUrl = Url.Action("Bar", "Foo", new RouteValueDictionary(new { id = pid, search = search }), Request.Url.Scheme); 
string fullUrlEncoded = HttpUtility.UrlEncode(fullUrl); 

:以下

コードは、私たちはプロキシを使用していなかった問題なく働いています解決しましたか?

+1

実際にできることは何もないと思います。アプリケーションは、それを利用するリバースプロキシへの可視性を持ちません。絶対URLが絶対に必要な場合は、アプリケーション設定のようなもので単純にハードコードする必要があります。次に、UrlHelper拡張を作成して、その値を読み取り、それに基づいて真の絶対URLを構築することができます。 –

+1

アプリケーション設定の利点は、設定変換を使用して値を変更できることです。 –

+0

プロキシがX-Forwarded-Forヘッダーを設定しているかどうかを調べることがあります。そうでない場合は、そうするように構成すると、より望ましい結果が得られる可能性があります。 –

答えて

0

私は、appsettingsのURLをハードコーディングし、Chris Prattの提案したようにURLに追加しました。 X-Forwarded-Forヘッダーを使用できませんでしたが、有効になっていましたが、その情報を受信しなかったため、使用できませんでした。

関連する問題