2017-02-01 9 views
0

アクティブディレクトリからフルネームを表示しようとしています。私のローカルでうまく動作します。しかし、このコードをサーバー上のIISに公開すると、表示名がnullとして表示されます。何が問題なのでしょうか?私のアカウントはWindows認証を使用しています。C#アクティブディレクトリプリンシパル表示名がヌルです

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

答えて

1

IISサーバーのADプロパティにアクセスするために、HostingEnvironment.Impersonate()を使用する必要がありました。また

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

を(それがローカルにそれなしで働いていた)、あなたは「はNetworkService」に「AppPoolIdentity」から、あなたのアプリケーションプールのIDを変更する必要があると思います。

+0

これは、ユーザー 'DomainName \ MachineName $'のログインに失敗しました。 – Kurkula

+0

おそらく許可の問題です。 [this](http://stackoverflow.com/a/2806582/7046455)をチェックしてください。 –

関連する問題