как получить имя пользователя Windows в веб-приложении IIS?- не имя пользователя процесса - PullRequest
0 голосов
/ 19 февраля 2019

Я унаследовал старое веб-приложение asp.net.Часть процесса входа в систему предназначена для сбора имени пользователя Windows (а не имени пользователя процесса).Раньше это работало (много лет назад), но новая компиляция системы возвращает имя / имя пользователя пула приложений вместо имени пользователя Windows.

Имя пользователя собирается до проверки подлинности веб-сайтом, первоначально используя HttpContext.Current.User.Identity.Name Я испробовал все другие варианты, которые были предложены без изменений в результатах.

string loginName;
loginName = Environment.UserName;
loginName = System.Windows.Forms.SystemInformation.UserName;
loginName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
loginName = HttpContext.Current.User.Identity.Name;
loginName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
loginName = System.Windows.Forms.SystemInformation.UserName;
loginName = System.DirectoryServices.AccountManagement.UserPrincipal.Current.SamAccountName;
loginName = System.DirectoryServices.AccountManagement.UserPrincipal.Current.UserPrincipalName;

Я пробовал их по одному (не все вместе) и только в целевой среде.когда-либо получил имя пула приложений или имя пользователя пула приложений.Я пробовал каждую комбинацию аутентификации в IIS, единственное, что имеет значение, - это олицетворение ASP.NET, которое меняется с имени пула приложений на имя пользователя олицетворения.

На моем локальном ПК, запущенном из Visual Studio,все они работают, чтобы вернуть окна, зарегистрированные в имени пользователя.

Я довольно новичок в веб-приложениях asp.net и не знаю, что еще попробовать.

1 Ответ

0 голосов
/ 19 февраля 2019

Вы наткнулись на ответ.Если вы хотите, чтобы сервер автоматически знал пользователя Windows, учетные данные этого пользователя Windows должны быть переданы приложению.При использовании параметров проверки подлинности Kerberos или NTML (проверка подлинности Windows) этот набор учетных данных передается автоматически.В противном случае вам необходимо предложить пользователю ввести учетные данные.Вам не нужно использовать олицетворение, но вы можете программно олицетворять вошедшего в систему пользователя, если у вашего пользователя пула приложений есть достаточный доступ к каталогу dc.Подробнее об этом здесь: https://docs.microsoft.com/en-us/previous-versions/msp-n-p/ff647405(v=pandp.10)#impersonating-the-original-caller-programmatically

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...