イントラネット アプリケーションを構築しており、Windows 認証を使用しています。私はこのセットアップと作業を行っており、@Context.User.Identity.Name を介して現在のユーザーのユーザー名を確認できます。
Active Directory にクエリを実行して、表示名、電子メール アドレスなどを取得したいと考えています。
私は System.DirectoryServices.AccountManagement を見て、これから基本的な例を作成しました。ただし、アプリケーション全体でこの情報を表示する方法については明確ではありません。
私がこれまでに持っているものは次のとおりです。
public class searchAD
{
// Establish Domain Context
PrincipalContext domainContext = new PrincipalContext(ContextType.Domain);
public searchAD()
{
// find the user
UserPrincipal user = UserPrincipal.FindByIdentity(domainContext, HttpContext.Current.User.Identity.Name);
if (user != null)
{
var userGuid = user.Guid;
var DisplayName = user.DisplayName;
var GivenName = user.GivenName;
var EmailAddress = user.EmailAddress;
}
}
}
そのようにViewModelを作成する必要があると思いますか?
public class domainContext
{
public Nullable<Guid> userGuid { get; set; }
public string DisplayName { get; set; }
public string GivenName { get; set; }
public string EmailAddress { get; set; }
}
アプリケーションのさまざまなセクションでこの情報にアクセスできるようにしたいと考えています。
エラーが発生していません。これらすべてを結び付ける何かが欠けているようです。