2012-02-09 11 views
2

私は最近、Active Directoryに対してユーザーを認証する必要があるプロジェクトを開始しました。mvc3のC#プロジェクト内でのAD情報の取得

認証モードを使用する=「Windows」。私はログインしてユーザー名を取得することができました。

@Context.User.Identity.Name 

は、今私は私がログインしているユーザーからのGUIDを取得する可能性がどのように思っていた。

私はそのメンバーが一意にするために、私自身のデータベースにActive DirectoryからGUIDを使用したいです。

+2

このスレッドを見る人のためにこのビットを追加してください:データベース内のレコードを追跡しようとしている場合、 'objectGuid'をキーとして使用します(OPとして)/ really/* good * practiceです。 'ObjectGuid'はフォレスト内で不変です。フォレスト内でドメイン間の移動を行う場合、GUIDは同じままですが、SIDは維持されません。 –

答えて

2

.NET 3.5以降では、System.DirectoryServices.AccountManagement(S.DS.AM)名前空間をチェックアウトする必要があります。ここではそれについてのすべてを読む:

基本的に、あなたはドメインコンテキストを定義し、簡単にADのユーザーおよび/またはグループを見つけることができます:

// set up domain context 
PrincipalContext ctx = new PrincipalContext(ContextType.Domain); 

// find a user 
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, User.Identity.Name); 

if(user != null) 
{ 
    // do something here ... like grabbing the GUID 
    var userGuid = user.Guid; 
} 

新しいS.DS.AMにより、ADのユーザーとグループで簡単に遊ぶことができます。

関連する問題