2012-03-14 12 views
0

マシンにログオンしている現在のユーザーがアクティブなディレクトリユーザーであり、アプリケーションの一部であることを確認するにはどうすればよいですか?現在ログインしているアクティブディレクトリとdbユーザーを比較していますか?

ADに基づいて認証するレガシーアプリケーションの拡張機能を構築しています。データベースにはad_user_nameがあり、実際にアクティブなディレクトリに保持されているユーザー名とad_user_nameを比較したいと思います。

ユーザー名が同じ場合は、編集ビューにアクセスできます。ユーザーが異なる場合、何かが間違っていて、何も見えません。

EDIT:あなたの使用して、.NET 3.5が代わりにこのコードを使用する場合は、サーバが唯一の.NET 2.0

答えて

1

を実行する可能性があります。

は、ユーザ認証を行うために:あなたはR/Wにユーザーを検索する必要がある場合は、オブジェクトに属性を

PrincipalContext adContext = new PrincipalContext(ContextType.Domain); 

using (adContext) 
{ 
    return adContext.ValidateCredentials(UserName, Password); 
} 

を行い、この:これはあなたのようSystem.DirectoryServices.AccountManagement名前空間を使用している

PrincipalContext context = new PrincipalContext(ContextType.Domain); 
UserPrincipal foundUser = UserPrincipal.FindByIdentity(context, "jdoe"); 

」あなたのusingステートメントにそれを追加する必要があります。

あなたはレガシーコードで動作するようにDirectoryEntryオブジェクトへのUserPrincipalオブジェクトを変換する必要がある場合は、あなたがこれを行うことができます:

DirectoryEntry userDE = (DirectoryEntry)foundUser.GetUnderlyingObject(); 
+0

どのようにして唯一の.NET 2.0で勝つ2003サーバー上でこれを行うのでしょうか? –

+0

あなたはネパール出身ですか? namaste :) –

+0

ナムスター、私はネパール出身です.......以前にネパールに行ったことがありますか? –