public string[] GetNonMembers(string usertocheck, string[] groupstocheck) { if (usertocheck == null || groupstocheck == null) { string msg = ResourceManager.GetString("LDAP_INVALIDADDR", "Workshare.DirectorySearcher.Exceptions", typeof(DirectoryAnalyzerImpl).Assembly); Logger.LogInfo(msg); throw (new ArgumentNullException(msg)); } string[] addrs = new string[0]; if (IsLdapAvailable) { IAddress ldapAddress = GetAddressInformation(usertocheck); IAddressCollection policyAddresses = new AddressCollection(m_engine); policyAddresses.Add(ldapAddress); IAddressCollection groupAddresses = GetAddressCollectionInformation(groupstocheck); policyAddresses.ContainMembersOf(groupAddresses); addrs = policyAddresses.GetAddresses(false); } return addrs; }
public IAddressCollection GetAddressCollectionInformation(string[] emails) { AddressCollection ac = new AddressCollection(m_engine); ac.AddRange(emails); StringBuilder sb = new StringBuilder(); sb.AppendFormat("Found ({0}) addresses for emails string array", ac.Count); Logger.LogInfo(sb.ToString()); return (IAddressCollection)ac; }
public bool IsMemberOfGroup(string address, string[] group) { IAddress ldapAddress = GetAddressInformation(address); IAddressCollection policyAddresses = new AddressCollection(m_engine); policyAddresses.Add(ldapAddress); IAddressCollection groupAddresses = GetAddressCollectionInformation(group); bool isMemberOf = false; try { if (IsLdapAvailable) isMemberOf = IsMemberOf(policyAddresses, groupAddresses); } catch (LdapException) { // ignore for now isMemberOf = false; } return isMemberOf; }
public IAddressCollection GetAddressCollectionInformation(string value, FieldType field) { AddressCollection ac = new AddressCollection(m_engine); if (IsLdapAvailable) { ac.AddRange(m_engine.RetrieveMembersByField(field, value, "")); StringBuilder sb = new StringBuilder(); sb.AppendFormat("Found ({0}) addresses for field names", ac.Count); Logger.LogInfo(sb.ToString()); } return (IAddressCollection)ac; }