DomainCredentials: IDomainCredentials;
Свойство DomainCredentials определяет учетные данные, под которыми будет осуществляться авторизация в домене при поиске.
Для выполнения примера добавьте ссылку на системную сборку Metabase.
Sub FindSubject;
Var
MB: IMetabase;
Pack: ISecurityPackage;
DomainCreds: IDomainCredentials;
Search: ISecuritySubjectsSearch;
Subjects: ISecuritySubjects;
Subject: ISecuritySubject;
Begin
MB := MetabaseClass.Active;
Search := MB.Security.NewSubjectsSearch;
Search.NameCriteria := "TestDomain\*";
Search.SubjectCriteria(SecuritySubjectType.User) := True;
Search.SubjectCriteria(SecuritySubjectType.Group) := True;
Search.AreaIncludeDB := False;
Search.AreaIncludeNT := True;
//Настройки для поиска в домене
Pack := New StandardSecurityPackage.Create;
//Использовать учетные данные текущего пользователя, авторизовавшегося в домене
DomainCreds := Pack.CreateCredentials(AuthenticationMode.Domain) As IDomainCredentials;
DomainCreds.LogonAsCurrentUser := True;
Search.DomainSelectCriteria := DomainSelectType.SpecifiedDomain;
Search.ProtocolSelectCriteria := ProtocolSelectType.GC;
//Поиск
Search.ExecuteSearch;
Subjects := Search.Subjects;
If Subjects.Count > 0 Then
For Each Subject In Subjects Do
Debug.WriteLine("Distinguished Name: " + Subject.DistinguishedName);
If Subject.Type = SecuritySubjectType.User Then
Debug.WriteLine("Domain User Name: " + Subject.UserPrincipalName);
End If;
End For;
End If;
End Sub FindSubject;
При выполнении примера будет произведен поиск всех субъектов безопасности, зарегистрированных в домене «TestDomain». Для найденных субъектов в консоль среды разработки будут выведены различающиеся имена. Для доменных пользователей также будут выведены доменные имена.
См. также: