0

ランタイム<a>リンクを生成しています。リンクを完了するには、次のコードを使用しています。

string appPath = protocol + System.Web.HttpContext.Current.Request.ServerVariables["HTTP_HOST"] + System.Web.HttpContext.Current.Request.ApplicationPath;.

しかし、ユーザーが Web サイトを開こうとすると:http://123.123.123.123/testAppこの時点で、私のリンクは で作成されhttp://myservername.com/testAppます。

ユーザーが入力したアドレスが必要です。

http://123.123.123.123/testAppユーザーがリンクから開いているウェブサイトを開く場合は、

http://123.123.123.123/testApp/Default.aspx

http://myservername.com/testAppおよびユーザーがリンクから Web サイトを開く場合は、

http://myservername.com/testApp/Default.aspx

4

3 に答える 3

0

HTTP_HOST または SERVER_NAMEのいずれかが、サイトにアクセスするために入力したユーザーに関する情報を提供する必要があります。正しい値を確認するために、IP アドレスの場合にブラウザーが実際に送信するものを HTTP デバッガーで確認することをお勧めします。

   `HttpContext.Current.Request.ServerVariables("HTTP_HOST");` 
于 2013-01-23T06:41:35.860 に答える
0

この関数を使用してIPAddress、ユーザーの を取得します。
ただし、実際の IP を取得できない可能性があります。ネットワーク上のすべてのコンピューターでfirewall同じ問題が発生する可能性があるなど、多くの懸念があります。ip

    public static string GetMachineName(HttpRequest moRequest)
    {
        return moRequest.ServerVariables["HTTP_X_FORWARDED_FOR"] != null ||
               moRequest.ServerVariables["HTTP_CLIENT_IP"] != null
                   ? moRequest.ServerVariables["HTTP_X_FORWARDED_FOR"]
                   : moRequest.ServerVariables["REMOTE_ADDR"];
    }
于 2013-01-23T07:38:28.430 に答える
0

REMOTE_ADDRサーバー変数を使用する

string appPath = protocol + 
System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"] + 
System.Web.HttpContext.Current.Request.ApplicationPath;
于 2013-01-23T06:29:18.427 に答える