2009-07-16 4 views
0

Pouvez-vous élaborer ce qui se passe derrière la scène lorsque nous créons une instance de DirectoryEntry?Qu'est-ce qui se passe derrière la scène lorsque nous créons une instance System.DirectoryServices.DirectoryEntry?

Extrait de code:

var dirEntry = new DirectoryEntry("LDAP://CN=jsmith,DC=fabrikam,DC=Com", userName, password); 

Je veux dire, comment fonctionne l'authentification? Qui parle avec qui? Supposons que le code ci-dessus est dans une application console.

Répondre

1

Création du DirectoryEntry ne fait pas beaucoup plus que de créer réellement la objet en mémoire. L'objet DirectoryEntry est en fait juste un wrapper géré autour de l'interface IADsObject basique de l'interface ADSI (Active Directory Service Interfaces) non gérée basée sur COM vers Active Directory (que vous pourriez - si vous voulez vraiment - utiliser directement, aussi). Lorsque vous commencez à utiliser ses propriétés ou lorsque vous accédez à l'objet COM .NativeObject sous-jacent, se connecte-t-il réellement à Active Directory, se connecte-t-il avec vos informations d'identification actuelles (ou toutes les autres informations d'identification fournies) et tente-t-il d'extraire informations pour ce DirectoryEntry de AD.

Marc

0

D'après ce que je peux voir à l'aide du réflecteur, il utilise le activds.dll

Par exemple:

[DllImport("activeds.dll", EntryPoint="ADsOpenObject", CharSet=CharSet.Unicode, ExactSpelling=true)] 
private static extern int IntADsOpenObject(string path, string userName, string password, int flags, [In, Out] ref Guid iid, [MarshalAs(UnmanagedType.Interface)] out object ppObject); 

http://msdn.microsoft.com/en-us/library/aa772238(VS.85).aspx

Questions connexes