Wenn Sie .NET 3.5 oder höher verwenden, sollten Sie die PrincipalSearcher
Klasse check out:
' create your domain context
Dim ctx As New PrincipalContext(ContextType.Domain)
' define a "query-by-example" principal - here, we search for a UserPrincipal
' and with the first name (GivenName) of "Bruce" and a last name (Surname) of "Miller"
Dim qbeUser As New UserPrincipal(ctx)
qbeUser.GivenName = "Bruce"
qbeUser.Surname = "Miller"
' create your principal searcher passing in the QBE principal
Dim srch As New PrincipalSearcher(qbeUser)
' find all matches
For Each found As var In srch.FindAll()
' do whatever here - "found" is of type "Principal" - it could be user, group, computer.....
Next
Wenn Sie noch nicht wissen, lesen Sie unbedingt den MSDN-Artikel Managing Directory Security Principals in the .NET Framework 3.5, der zeigt, wie Sie die neuen Funktionen in System.DirectoryServices.AccountManagement
optimal nutzen können. Oder sehen Sie sich den Namespace MSDN documentation on the System.DirectoryServices.AccountManagement an.
Natürlich, je nach Bedarf, können Sie andere Eigenschaften auf, dass „query-by-Beispiel“ Benutzerprinzipal angeben Sie erstellen:
DisplayName
(typisch: Vorname + Raum + Nachname)
SAM Account Name
- Ihr Windows/AD-Kontonamen
User Principal Name
- Ihr "[email protected]" Artnamen
Sie spe können cify eine der Eigenschaften auf UserPrincipal
und verwenden Sie diese als "Query-by-Beispiel" für Ihre PrincipalSearcher
.
Oder wenn Sie nur einen bestimmten Benutzer finden wollen - versuchen Sie dies:
' find a user
Dim user As UserPrincipal = UserPrincipal.FindByIdentity(ctx, "SomeUserName")
' do something here....
If user IsNot Nothing Then
. .....
End If
Beachten Sie, dass der Suchbereich 'sub' in diesem Beispiel sein sollte. –
Also habe ich den Vorschlag von Tom Pickles verwendet, und ich kam auf diese Idee – Pickle