получить информацию о пользователе из его http-запроса - PullRequest
4 голосов
/ 08 мая 2011

Q:

Я хочу спросить о том, как получить Имя компьютера и имя учетной записи пользователя, который сделал http request на моем веб-сайте. Согласно его запросу.

Когда я ищу, я нахожу, что:

  • REMOTE_HOST

    Имя хоста, который делает запрос. Если сервер не иметь эту информацию, он установит REMOTE_ADDR и оставьте это поле пустым.

    Почему сервер может никогда не содержать имя хоста? и как я могу это исправить это?

  • Я использую REMOTE_USER, LOGON_USER, AUTH_USER чтобы получить имя учетной записи но он также не содержит никаких данных

.

Ответы [ 2 ]

5 голосов
/ 08 мая 2011

Вы можете использовать объект Request.ServerVariables, например

// will return the host name making the request

    string s = Request.ServerVariables["REMOTE_HOST"] 


    // will return the computer name
    string s = Request.ServerVariables["SERVER_NAME"] 

EDIT

Если вы хотите получить имя компьютера, попробуйте ввести

string computer_name = System.Net.Dns.GetHostEntry(Request.ServerVariables["remote_addr"]).HostName;

    Response.Write(computer_name);

РЕДАКТИРОВАТЬ II

// Получение сведений о клиентском компьютере

System.Net.IPAddress[] strClientIPAddress = System.Net.Dns.GetHostAddresses(Environment.MachineName);
string strClientMachineName = Environment.MachineName.ToString().Trim();
string strClientUserName = Environment.UserName.ToString().Trim();
string strClientDomainName = Environment.UserDomainName.ToString().Trim();
string strClientOSVersion = Environment.OSVersion.ToString().Trim();

Чтобы узнать больше серверных переменных, перейдите по следующей ссылке

Переменные сервера IIS

3 голосов
/ 08 мая 2011

попробуйте

System.Web.HttpContext.Current.Request.UserHostName;
System.Web.HttpContext.Current.Request.UserHostAddress;
...