Приложение MVC5 .NET и получение текущего имени пользователя - PullRequest
0 голосов
/ 06 июня 2018

У меня есть веб-приложение MVC5, которое я использую для получения информации о текущем пользователе.Я включил Windows-вход в систему для веб-приложения в IIS.

private readonly string _userName = UserPrincipal.Current.DisplayName;

item.CreatedBy = _userName;

Это работает при запуске приложения на моей машине для разработки, однако при публикации в IIS оно вызывает исключения:

Неверный поисковый фильтр (& (objectCategory = user) (objectClass = user) (| (userPrincipalName =) (Однозначный =) (name =))).

Как мне это получитьработать на сервере IIS для правильного получения информации о пользователе?

Кстати, я тоже пробовал это:

private readonly PrincipalContext ctx = new PrincipalContext(ContextType.Domain);

var user = UserPrincipal.FindByIdentity(ctx, User.Identity.Name);

item.CreatedBy = user.DisplayName;

, но безрезультатно.

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Похоже, что анонимная аутентификация все еще была включена на веб-сайте по умолчанию в IIS.Я отключил, и теперь он работает со следующим кодом:

private readonly PrincipalContext ctx = new PrincipalContext(ContextType.Domain);

var user = UserPrincipal.FindByIdentity(ctx, User.Identity.Name);

item.CreatedBy = user.DisplayName;
0 голосов
/ 06 июня 2018

Это может быть то, что вы подразумеваете под «Я включил Windows-вход в систему для веб-приложения на IIS», но подтвердите, что у вас включена проверка подлинности Windows на самом IIS.Также может быть полезна информация о том, что идет не так в вашем случае «безрезультатно».

...