Metabase > Metabase Assembly Interfaces > ISecuritySubjectsSearch > ISecuritySubjectsSearch.DomainCredentials
DomainCredentials: IDomainCredentials;
The DomainCredentials property determines the credentials, under which domain authentication is performed on search.
To execute the example, add a link to the Metabase system assembly.
Sub UserProc;
Var
MB: IMetabase;
Pack: ISecurityPackage;
DomainCreds: IDomainCredentials;
Search: ISecuritySubjectsSearch;
Subjects: ISecuritySubjects;
Subject: ISecuritySubject;
Begin
// Get the current repository
MB := MetabaseClass.Active;
Search := MB.Security.NewSubjectsSearch;
// Determine domain name
Search.NameCriteria := "TestDomain\*";
// Determine types of security subjects that should be found
Search.SubjectCriteria(SecuritySubjectType.User) := True;
Search.SubjectCriteria(SecuritySubjectType.Group) := True;
Search.AreaIncludeDB := False;
Search.AreaIncludeNT := True;
// Set security subject search parameters in domain
Pack := New StandardSecurityPackage.Create;
// Use credentials of the current user who was authorized in domain
DomainCreds := Pack.CreateCredentials(AuthenticationMode.Domain) As IDomainCredentials;
DomainCreds.LogonAsCurrentUser := True;
Search.DomainCredentials := DomainCreds;
Search.DomainSelectCriteria := DomainSelectType.SpecifiedDomain;
Search.ProtocolSelectCriteria := ProtocolSelectType.GC;
// Find security subjects
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 UserProc;
On executing the example all security subjects registered in the TestDomain domain are searched. Different names for the found subjects are displayed in the development environment console. Domain names are also displayed for domain users.
See also: