public ILdapService For(ILdapDirectory directory) { if (directory == null) throw new ArgumentNullException("directory"); var factory = orchardServices.WorkContext.Resolve<Func<ILdapDirectory, ILdapService>>(); return factory(directory); }
public LdapService(ILdapDirectory directory) { Directory = directory; configuration = new LdapConfiguration(); var server = Directory.Server; connectionFactoryConfiguration = configuration.ConfigureFactory(server.Host); if (server.UseSsl) connectionFactoryConfiguration.UseSsl(server.Port.Value); else connectionFactoryConfiguration.UsePort(server.Port.Value); if (server.UseUdp) connectionFactoryConfiguration.UseUdp(); }
/// <summary> /// Gets the LDAP users. /// </summary> /// <param name="directory">ldap directory path.</param> /// <param name="OUName">Name of the organization unit in ldap path.</param> /// <returns></returns> /// <exception cref="System.Exception">Chyba pri vyhladavani pouzivatelov v ad. Pravdepodobne zla LDAP cesta.</exception> public SearchResultCollection GetLDAPUsers(ILdapDirectory directory, string OUName = null) { DirectoryEntry de = ADHelper.GetDirectoryEntry(); var deSearch = new DirectorySearcher(OUName); deSearch.SearchRoot = de; string member = null; if (!String.IsNullOrEmpty(directory.UserMemberOf)) { member = string.Format("(memberof={0},{1})", directory.UserMemberOf, directory.BaseDn); } deSearch.Filter = String.Format("(&(objectCategory={0})(objectClass={1}){2})", directory.UserObjectCategory, directory.UserObjectClass, member); SearchResultCollection result = null; try { result = deSearch.FindAll(); } catch (Exception ex) { throw new Exception("Chyba pri vyhladavani pouzivatelov v ad. Pravdepodobne zla LDAP cesta.", ex); } return result; }
public List<User> GetUsers(ILdapDirectory directory, string OUName = null) { var result = GetLDAPUsers(directory, OUName); var users = result.EntityToModel(); return users; }