#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.