Как получить зарегистрированное имя пользователя машины, отправившей HttpRequest на сервер (веб-сайт)

#c# #asp.net-mvc-4 #http-headers #httprequest #wmi

#c# #asp.net-mvc-4 #http-заголовки #httprequest #wmi

Вопрос:

Мы развернули веб-приложение .net на сервере всякий раз, когда какой-либо http-запрос отправляется с клиентского компьютера. Я хочу, чтобы вошедшее в систему имя пользователя клиентского компьютера (не вошедший в систему пользователь приложения). Клиент и сервер находятся в одном домене.

например. Я вошел в свою машину с именем домена username. Я нажимаю любой URL-адрес веб-сайта в браузере, скажем www.xyz.com . Затем он должен показать ‘domain username’ в ответ или показать на веб-странице.

Возможно ли это?

В приведенных ниже строках указано имя пользователя серверной машины, но мне нужно имя пользователя клиентской машины.

 System.Security.Principal.WindowsIdentity.GetCurrent().Name;
System.Web.HttpContext.Current.Request.LogonUserIdentity.Name;
Environment.UserName;
windowsIdentity.Name;
  

Комментарии:

1. Как реализовать аутентификацию и авторизацию Windows в ASP.NET

Ответ №1:

Для этого вам нужно добавить информацию о домене / имени пользователя в пользовательский заголовок в HTTP-запросе, а затем прочитать этот заголовок на стороне сервера, но я думаю, что вы не можете получить такую информацию на стороне клиента с помощью браузера, поэтому ответ — нет, это невозможно при использовании браузера.

Комментарии:

1. Есть ли другой способ получить эту информацию?

2. Либо реализовать аутентификацию Windows, как предложил @stuartd выше, либо создать пользовательское клиентское приложение, которое будет использовать API.