You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// use namespace on .Net 4.5// using System.DirectoryServices;// using System.DirectoryServices.AccountManagement;publicclassServer:DirectoryEntity{[DirectoryProperty("host")]publicstringHostName{get;set;}[DirectoryProperty("ip")]publicstringIP{get;set;}publicstringLocation{get;set;}}classSample{privateLdapQueryTranslatorGetTranslator(Expression<Func<Server,bool>>predicate){returnnewLdapQueryTranslator(predicate,typeof(Server));}publicDemo(){vartranslator=this.GetTranslator(s =>s.HostName.Contains("server.com")||s.IP.StartWith("10.0."||s.Location=="Room 1");varfilter=translator.FilterString;// output - (|(host=*server.com*)(ip=10.0.*)(Location=Room 1))}}
How to use LdapDirectoryService and LdapDirectoryService
usingFrameworkExtKit.Services.DirectoryServices////// LdapDirectoryService Sample///// default methodvar service =newLdapDirectoryService();// or with root Entry (.net 4.5)DirectoryEntryrootEntry=newDirectoryEntry("ldap://ldap.company.com");varservice=newLdapDirectoryService(rootEntry)// or with settings (.net core 2.1)LdapSettingssettings=newLdapSettings();// remember to set setting propertiesvarservice=newLdapDirectoryService(settings)// search ldapServerserver=service.FindById<Server>("server-id");server=service.Single<Server>(s =>s.IP=="10.0.0.2");IEnumerable<Server>servers=service.Where<Server>(s =>s.IP.Contains("10.0.0.2"));////// LdapDirectoryService<T> Sample///// default methodvarservice=newLdapDirectoryService<Server>();// or with root Entry (.net 4.5)DirectoryEntryrootEntry=newDirectoryEntry("ldap://ldap.company.com");varservice=newLdapDirectoryService<Server>(rootEntry)// or with settings (.net core 2.1)LdapSettings settings =newLdapSettings();// remember to set setting propertiesvarservice=newLdapDirectoryService<Server>(settings)// search ldapServer server = service.FindById("server-id");server=service.FindByName("host-name");server=service.Single(s =>s.IP=="10.0.0.2");IEnumerable<Server>servers=service.Where(s =>s.IP.Contains("10.0.0.2"));
How to use IDirectoryAccountService, IDirectoryRoleAccountService, IDirectoryGroupService and IDirectoryDistributionListService
implement the entity class for each service you would like to use
classSampleAccount:DirectoryAccount{[DirectoryProperty("localcountry")]publicstringResidentCountry{get;set;}//.... and other properties}classSampleGroup:DirectoryGroup{// add properties}classSampleRoleAccount:DirectoryRoleAccount{// add properties}classSampleDistributionList:DirectoryDistributionList{// add properties}
use the services to search ldap
IDirectoryAccountService<SampleAccount>account_service=newLdapDirectoryAccountService<SampleAccount>();IDirectoryAccountService<SampleGroup>group_service=newLdapDirectoryAccountService<SampleGroup>();IDirectoryAccountService<SampleRoleAccount>role_account_service=newLdapDirectoryAccountService<SampleRoleAccount>();IDirectoryAccountService<SampleDistributionList>distriution_list_service=newLdapDirectoryAccountService<SampleDistributionList>();varaccount=account_service.FindById(1234);varmanager=account_service.FindDirectManager(account);// similar usage for other services