2009-05-14 9 views
0

Ich schreibe eine Anwendung, die ich mit Active Directory und lokalen Benutzern und Gruppen arbeiten möchte. Ich dachte, ich könnte die NativeGuid-Eigenschaft eines DirectoryEntry als eindeutige Kennung verwenden, die mit dem WinNT-Provider gegen LocalHost abgerufen wurde. Mit dem folgenden Code in LinqPad bekomme ich jedoch die gleiche NativeGuid für beide Einträge. Das Abfragen von Active Dirctory mit dem LDAP-Provider scheint eindeutige Ergebnisse zu liefern, aber jetzt bin ich nicht sicher.Was ist die NativeGuid in DirectoryEntry bei der Abfrage über den WinNT-Provider?

System.DirectoryServices.DirectoryEntry localuserde = 
    new System.DirectoryServices.DirectoryEntry("WinNT://localhost/localuser"); 
localuserde.NativeGuid.Dump("localUser Guid"); 

System.DirectoryServices.DirectoryEntry adminde = 
new System.DirectoryServices.DirectoryEntry("WinNT://localhost/administrator"); 
adminde.NativeGuid.Dump("administrator Guid"); 

Kann jemand bitte erklären, was die NativeGuid darstellt, wenn der WinNT-Anbieter verwenden, und gibt es eine gute Alternative für einen UniqueId oder ist die SID eine bessere Wahl?

Um das oben in LinqPad auszuführen, drücken Sie F4 und fügen Sie System.DirectoryServices.dll der Liste der Assemblys hinzu. Stellen Sie dann sicher, dass localuser entweder vorhanden ist, oder ändern Sie den Namen in einen lokalen Benutzer auf dem System. Dann drücke F5.

Danke,

Shane Halter

Antwort

0

Ich würde denken, dass die SID ist wahrscheinlich Ihre beste Wette in jedem Benutzer-und Gruppen-Szenario hier. Es gibt wirklich keinen anderen eindeutigen Bezeichner - besonders nicht mit dem WinNT-Provider.

Für weitere Informationen über die WinNT vs. LDAP Diskussion und für eine gute Referenz Excel-Blätter auf welche Eigenschaften jeder dieser Anbieter wirklich ausgesetzt (und wie ihre Namen sind), besuchen Sie Richard Müller Hilltop Lab. Richard ist ein ADSI MVP und hat hervorragende Inhalte für jeden, der sich für Active Directory und LDAP interessiert.

Marc

0

Diese other question sagt nicht NativeGuid zu verwenden. Ich würde stattdessen die "SID" verwenden.