5

私は IP アドレスを持っていますが、何らかの理由で名前解決を正しく取得して、ローカル コンピューター名を表示できます。私はいくつかのことを試してみましたが、それらはすべてサーバーのホスト名を示していますか?

    ipadd = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
    IPAddress myIP = IPAddress.Parse(ipadd);
    IPHostEntry GetIPHost = Dns.GetHostEntry(myIP);


    //userhostname = System.Environment.MachineName;
    //userhostname = Dns.GetHostName(); //Resolve ServerHostName not computer
    //userhostname = HttpContext.Current.Request.UserHostName;
    //userhostname = HttpContext.Current.Request.UserAgent;
    userhostname = GetIPHost.HostName;

私が使用しようとしているユーザー名について

nametext = WindowsIdentity.GetCurrent().Name;
//Shows server name when deployed on server 
//when debuging and running localy shows correctly current user logged in

//nametext = HttpContext.Current.Request.ServerVariables["LOGON_USER"]; 
// not returning anything

認証を切り替えましたが、結果はありません

<authentication mode="Forms">
<authentication mode="Windows">
4

2 に答える 2

7

クライアント IP とマシン名にはHttpRequest.UserHostAddressとを使用します。HttpRequest.UserHostName

認証が正しく構成されていると仮定すると、クライアント ユーザーを から取得できますIIdentity.Name

a のコンテキストでは、、およびPageを使用できます。Request.UserHostAddressRequest.UserHostNameUser.Identity.Name

于 2012-07-10T16:25:02.637 に答える