Environment.UserName не работает после размещения в IIS. Код с ядром ASP.net 2.0

Проверка использования Active Directory с помощью библиотеки (System.DirectoryServices.AccountManagement). Как идентифицировать пользователя, чтобы он автоматически входил в систему. Я получал имя пользователя, используя переменную среды (Environment.UserName) при локальном запуске. Однако не удалось получить имя пользователя после размещения в среде IIS. Имя пользователя не работает в IIS.

введите здесь описание изображения


person khizar hussain    schedule 19.09.2019    source источник
comment
Вы включили проверку подлинности Windows в IIS?   -  person Rajeev Ranjan    schedule 19.09.2019
comment
Пожалуйста, не отправляйте код в виде изображения. Просто вставьте его в тело ответа как текст и используйте форматирование блока кода (`)   -  person 3nuc    schedule 19.09.2019
comment
Независимо от того, какую технологию вы используете, ASP.NET или ASP.NET Core, вы должны использовать ControllerBase.User docs.microsoft.com/en-us/dotnet/api/. Environment.UserName просто неправильно.   -  person Lex Li    schedule 19.09.2019


Ответы (1)


Environment.Username возвращает пользователя в текущем потоке вашего приложения asp.net. Вот почему вы получаете идентификатор пула приложений вместо пользователя для входа при развертывании его в IIS.

Если вы хотите, чтобы IIS возвращал аналогичный результат, вы можете указать пользователя в идентификаторе пула приложений вашего основного приложения asp.net. Тогда Environment.Username вернет аналогичный результат.

https://docs.microsoft.com/en-us/iis/manage/configuring-security/application-pool-identities

Если имя пользователя не то, что вам нужно, вы просто хотите, чтобы приложение обрабатывало идентификатор пользователя клиента. Вы должны включить аутентификацию Windows IIS. Затем вы получите идентификатор от Httpcontext.

person Jokies Ding    schedule 20.09.2019