Проверить, существует ли пользователь в Active Directory

Я использую vb.net и хочу проверить, существует ли конкретный пользователь в Active Directory. Если это так, я хочу отобразить данные конкретного пользователя. Как это сделать?

Учетные данные пользователя передаются через текстовое поле

Мой код:

 Dim de As DirectoryEntry = GetDirectoryEntry()
 Dim ds As DirectorySearcher = New DirectorySearcher(de)
  ds.Filter = "(&(objectClass=txt1.text))"

    ' Use the FindAll method to return objects to SearchResultCollection.
    results = ds.FindAll()

Public Shared Function GetDirectoryEntry() As DirectoryEntry
    Dim dirEntry As DirectoryEntry = New DirectoryEntry()
    dirEntry.Path = "LDAP://ss.in:389/CN=Schema,CN=Configuration,DC=ss,DC=in"
    dirEntry.Username = "ss.in\ssldap"
    dirEntry.Password = "ss@123"
    'Dim searcher As New DirectorySearcher
    'searcher.SearchRoot = dirEntry
    Return dirEntry
End Function

Где я передаю пароль. Этот код правильный? Я новичок в АД. Пожалуйста, помогите мне сделать это?


person vps    schedule 04.10.2012    source источник


Ответы (1)


Если вы используете .NET 3.5 и выше, вам следует проверить пространство имен System.DirectoryServices.AccountManagement (S.DS.AM). Прочтите все об этом здесь:

По сути, вы можете определить контекст домена и легко найти пользователей и/или группы в AD:

// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);

// find a user
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "SomeUserName");

if(user != null)
{
   // your user exists - do something here....      
}
else
{
   // your user in question does *not* exist - do something else....
} 

Или в VB.NET:

' set up domain context
Dim ctx As New PrincipalContext(ContextType.Domain)

' find a user
Dim user As UserPrincipal = UserPrincipal.FindByIdentity(ctx, "SomeUserName")

If user IsNot Nothing Then
   ' your user exists - do something here....               
Else
   ' your user in question does *not* exist - do something else....
End If

Новый S.DS.AM упрощает работу с пользователями и группами в AD!

person marc_s    schedule 04.10.2012
comment
я включаю любое пространство имен на странице aspx.vb - person vps; 04.10.2012
comment
куда мне передать аргументы домена @marc_s - person vps; 04.10.2012
comment
@sudha.s: вы можете указать, где искать вашего пользователя в различных перегрузках конструктора PrincipalContext - подробности см. в свободно доступных документах MSDN - person marc_s; 04.10.2012
comment
путь сервера домена=LDAP://ss.in:389/CN=Schema,CN=Configuration,DC=ss,DC=in имя пользователя=ssldap pwd=ss@123 - person vps; 04.10.2012