Member 10379103 Ответов: 1

Все еще не удается зарегистрировать имя пользователя windows в коде позади


Я включил ссылку web.httpcontext в свой код.

Затем я включаю следующее: var username = system.security. principal.windowsidentity.getcurrent (). name.tostring();

Когда я запускаю страницу, она по-прежнему возвращает NT Author rityNetwork Service.

Я также попытался установить переменную имени пользователя в user.identity.name и все равно получишь тот же результат.

Я проверил, что мои настройки IIS включены.

При загрузке страницы ошибок не регистрируется.

Мой .aspx-страницы и вверху: &ЛТ;%@ заголовок страницы ="" язык="C#" и masterpagefile вместе="~\сайте.Мастер" AutoEventWireup значение="истинный" код="mypagename.aspx-файл.КС" %&ГТ;

Код, стоящий за/. aspx.cs, имеет код в верхней части этого вопроса.

Почему я до сих пор получаю AuthorityNetworkService НТ, а не своим именем???

Как мне решить эту проблему???

Что я уже пробовал:

Я обновил ссылку на решение, добавил вызов к классу и коду позади него, проверил свои настройки IIS.

F-ES Sitecore

Для того чтобы получить имя пользователя, вам нужно отключить анонимную аутентификацию и включить аутентификацию Windows. Мы не можем получить доступ к вашей системе, поэтому мы не можем знать, почему она не работает, google включает аутентификацию Windows на IIS и выполняет следующие действия. Возможно также, что вы пытаетесь использовать его в среде, которая его не поддерживает, например, он не будет работать через интернет.

Member 10379103

Ф-Эс компания,

Я проверил, что любая аутентификация nymous отключена, а аутентификация Winsows включена в IIS.

Окружающая среда, которую я использую, поддерживает его. Есть и другие страницы, которые действительно отправляют информацию о пользователе...просто некоторые этого не делают. Могу ли я включить отдельный web.config, который снова проверяет аутентификацию Windows на тех страницах, где он не работает.

1 Ответов

Рейтинг:
2

Dave Kreskowiak

Это происходит потому, что вы не получаете идентичность в объекте запроса. Вы получаете идентификатор пользователя, выполняющего код, который по умолчанию является NetworkService.

Для Ан ASP.NET приложение, если я правильно помню, находится в HttpContext.Current.User.Identity.Name.


Member 10379103

Дейв,

Я просто попробовал это сделать и все равно получил NT Authority\NetworkService.

Dave Kreskowiak

Моя вина. Прошло довольно много времени с тех пор, как я делал это прямо ASP.NET.

Попробуй Request.LogonUserIdentity.Name.

Member 10379103

Тот же результат, Дэйв. Имя пользователя Windows не захватывается. Просто NT Authority Network Service по-прежнему...

Dave Kreskowiak

Я не знаю, что у вас происходит, потому что я построил тестовый проект, и это код, который я использовал, чтобы получить имя пользователя Windows клиента.

Пользователи, имя которых вы пытаетесь получить, находятся в том же домене AD или дереве, что и веб-сервер?