2009-05-06 3 views
1

J'essaye d'obtenir l'utilisateur GUID d'Active Directory. Mon code:Comment obtenir le GUID de l'utilisateur à partir d'Active Directory en utilisant le protocole WinNT?

DirectoryEntry entry = new DirectoryEntry("WinNT://DOMAIN/UserName"); 
Console.WriteLine("The GUID of the ADS object:" + entry.Guid); 
Console.WriteLine("The Native GUID of the ADS object:" + entry.NativeGuid); 

Le code ci-dessus revient toujours d83f1060-1e71-11cf-b1f3-02608c9e7553, quel que soit l'utilisateur et le domaine.

Est-il possible d'obtenir GUID utilisateur en utilisant le protocole WinNT?

Répondre

4

Découvrez le Hilltop Lab de Richard Mueller où il contient de nombreuses feuilles de calcul montrant toutes les propriétés exposées par les différents fournisseurs. En particulier, sa liste de propriétés que le fournisseur WinNT expose montre qu'il n'existe pas de «GUID» ou d'OID d'un utilisateur, ou quelque chose comme ça.

Rappelez-vous que le fournisseur WinNT est uniquement utilisé pour la rétrocompatibilité et ne fonctionne vraiment que sur les comptes de machines locales.

Si vous souhaitez accéder aux comptes DOMAIN, vous devez utiliser le fournisseur LDAP à la place - il vous donnera accès à toutes les propriétés LDAP d'un compte utilisateur.

Marc

+0

Je suis d'accord que NT est ok pour simplement saisir le nom d'utilisateur mais vous devriez utiliser LDAP pour quelque chose comme ça. – PeteT

0

Peut-être que vous voulez dire SID (identificateur de sécurité). Comme un GUID, il est unique, au moins dans l'arborescence du domaine. Je pense que la propriété est "objectSid". C'est binaire (octet []). Je ne me souviens plus de la taille (28 octets?) Mais je suis presque sûr que ce n'est pas un GUID.

+0

Non, j'avais besoin de GUID - pour lier avec les tables Yonkly. –