/// <summary> /// Delete AD user. /// </summary> /// <param name="ldapConnectionInfo">Properties to define LDAP connection</param> /// <param name="userProperties">Properties to define the user to be deleted</param> /// <returns>operationSuccessful = true if operation is ok.</returns> public static Output AD_DeleteUser([PropertyTab] LdapConnectionInfo ldapConnectionInfo, [PropertyTab] AD_DeleteUserProperties userProperties) { var ret_output = new Output(); List <DirectoryEntry> tmpObjectEntries; ret_output.operationSuccessful = false; ldapConnectionInfo.LdapUri = ldapConnectionInfo.LdapUri + "/" + userProperties.Path; string filter = "(&(objectClass=user)(cn=" + userProperties.Cn + "))"; using (var ldap = new LdapService(ldapConnectionInfo))// @"(&(objectClass=user)(cn=MattiMeikalainen)) { tmpObjectEntries = ldap.SearchObjectsByFilter(filter); if (tmpObjectEntries.Count > 0) { ldap.DeleteAdUser(tmpObjectEntries[0]); } else { throw new System.Exception($"Did not find any entries matching filter {filter} from {ldapConnectionInfo.LdapUri}"); } } ret_output.operationSuccessful = true; return(ret_output); }
/// <summary> /// Rename AD user. /// </summary> /// <param name="ldapConnectionInfo">Properties to define LDAP connection</param> /// <param name="userProperties">Properties to define the user to be renamed</param> /// <returns>operationSuccessful = true if operation is ok.</returns> public static OutputUser AD_RenameUser([PropertyTab] LdapConnectionInfo ldapConnectionInfo, [PropertyTab] AD_RenameUserProperties userProperties) { var ldapOperationResult = new OutputUser { OperationSuccessful = false, User = null }; List <DirectoryEntry> tmpObjectEntries; ldapConnectionInfo.LdapUri = ldapConnectionInfo.LdapUri + "/" + userProperties.Path; var filter = "(&(objectClass=user)(cn=" + userProperties.Cn + "))"; // @"(&(objectClass=user)(cn=MattiMeikalainen)) using (var ldap = new LdapService(ldapConnectionInfo)) { tmpObjectEntries = ldap.SearchObjectsByFilter(filter); if (tmpObjectEntries.Count == 1) { ldapOperationResult.User = ldap.RenameAdUser(tmpObjectEntries[0], userProperties.NewCn); } else if (tmpObjectEntries.Count == 0) { throw new Exception($"Did not find any entries matching filter {filter} from {ldapConnectionInfo.LdapUri}"); } else if (tmpObjectEntries.Count > 1) { throw new Exception($"Found more than one entry matching filter {filter} from {ldapConnectionInfo.LdapUri}"); } } ldapOperationResult.OperationSuccessful = true; return(ldapOperationResult); }
/// <summary> /// Searches Active Directory for objects specified by the given Path + filter, included in the AD_FetchObjectProperties class. /// </summary> /// <param name="ldapConnectionInfo">The LDAP connection information</param> /// <param name="SearchParameters">Path and filter needed for the query</param> /// <returns>LdapResult class: the Collection of the DirectoryEntry classes.</returns> public static List <OutputObjectEntry> AD_FetchObjects([PropertyTab] LdapConnectionInfo ldapConnectionInfo, [PropertyTab] AD_FetchObjectProperties SearchParameters) { var ret_outputs = new List <OutputObjectEntry>(); List <DirectoryEntry> tmpObjectEntries; ldapConnectionInfo.LdapUri = ldapConnectionInfo.LdapUri + "/" + SearchParameters.Path; using (var ldap = new LdapService(ldapConnectionInfo)) { tmpObjectEntries = ldap.SearchObjectsByFilter(SearchParameters.filter); } foreach (var item in tmpObjectEntries) { OutputObjectEntry output_class = new OutputObjectEntry(); output_class.ObjectEntry = item; ret_outputs.Add(output_class); } return(ret_outputs); }