2017-02-01 3 views
0

Я пытаюсь показать полное имя пользователя из активного каталога. Он отлично работает на моем местном. Но когда я публикую этот код для IIS на сервере, он отображает отображаемое имя как null. В чем может быть проблема? В моей учетной записи используется проверка подлинности Windows.C# Активный каталог Основное отображаемое имя равно null

using (var context = new PrincipalContext(ContextType.Domain)) 
      { 
       var principal = UserPrincipal.FindByIdentity(context, User.Identity.Name); 
       var displayName = principal?.DisplayName; 
} 

ответ

1

Я должен был использовать HostingEnvironment.Impersonate() для того, чтобы получить доступ к моему свойству AD на моем сервере IIS. (Он работал без него на местном)

using (HostingEnvironment.Impersonate()) 
{ 
    // your code 
} 

Кроме того, вы должны изменить идентификатор вашего пула приложений от «AppPoolIdentity» до «NetworkService».

+0

Это ошибка при неудачной ошибке для пользователя «DomainName \ MachineName $». – Kurkula

+0

Возможно, это проблема с разрешением. Проверьте [это] (http://stackoverflow.com/a/2806582/7046455) –