private void button4_Click(object sender, EventArgs e) { lblResult.Text = string.Empty; try { _ADHelper = new ADHelper(txtPath3.Text, txtLoginName.Text, txtPassword.Text); lstDomains.DataSource = _ADHelper.Domain_GetList1(); label4.Text = _ADHelper.LDAPPath; } catch (Exception ex) { lblResult.Text = Fwk.Exceptions.ExceptionHelper.GetAllMessageException(ex); } }
internal static ActiveDirectoryGroup[] GetGroupsFromUser(string userName, string domain) { ADHelper ad = new ADHelper(domain, ActiveDirectoryService.CnnStringName); List<ADGroup> list = ad.User_SearchGroupList(userName); ad.Dispose(); if (list.Count != 0) { var activeDirectoryGroupList = from g in list select new ActiveDirectoryGroup(g); return activeDirectoryGroupList.ToArray<ActiveDirectoryGroup>(); } else return null; }
internal static ActiveDirectoryUser[] GetUsersFromGroup(string groupName, string domain) { ADHelper ad = new ADHelper(domain, ActiveDirectoryService.CnnStringName); List<ADUser> list = ad.Users_SearchByGroupName(groupName); ad.Dispose(); if (list.Count != 0) { var userList = from u in list select new ActiveDirectoryUser(u); return userList.ToArray<ActiveDirectoryUser>(); } else return null; }
/// <summary> /// Busca un objeto <see cref="ADHelper"/> si no lo encuentra intenta crearlo e insertarlo al diccionario.- /// La creacion del diccionario se hace para no instanciar cientos de veses la clase ADHelper. ya que esta tarea requiere ,mas uso de CPU que el costo de mantener en memoria /// un diccionario con porcos ADHelper. /// En el mundo reali no existiran gran cantidad de clases ADHelper, pero si muchas quisa cientos de ejecuciones del metodos de autenticacio, q son los que /// crearian instancias de ADHelper.- /// </summary> /// <param name="domainName">Nombre del dominio</param> /// <returns></returns> internal static ADHelper Find_ADHelper(string domainName) { // Si ADHelper no esta en el diccionario lo intenta agregar if(_ADHelperDictionary.ContainsKey(domainName) == false) { DomainUrlInfo di = StaticsValues.Find_DomainUrlInfo(domainName); ADHelper ad = new Fwk.Security.ActiveDirectory.ADHelper(di.LDAPPath,di.Usr,di.Pwd); _ADHelperDictionary.Add(domainName,ad); return ad; } //Si el codigo pasa por aqui es por que existe return _ADHelperDictionary[domainName]; }
internal static ActiveDirectoryGroup[] GetGroups(string domain) { ADHelper ad = new ADHelper(domain, ActiveDirectoryService.CnnStringName, performCustomWindowsContextImpersonalization); List<ADGroup> list = ad.Groups_GetAll(); ad.Dispose(); if (list.Count != 0) { var userList = from u in list select new ActiveDirectoryGroup(u); return userList.ToArray<ActiveDirectoryGroup>(); } else return null; }
internal static bool UserExist(string userName, string domain) { ADHelper ad = new ADHelper(domain, ActiveDirectoryService.CnnStringName, performCustomWindowsContextImpersonalization); bool exist= ad.User_Exists(userName); ad.Dispose(); return exist; }
internal static void User_Reset_Password(string userName, string newPassword, string domain) { ADHelper ad = new ADHelper(domain, ActiveDirectoryService.CnnStringName, performCustomWindowsContextImpersonalization); ad.User_ResetPwd(userName, newPassword ,true); ad.Dispose(); }
internal static void User_SetActivation(string userName, bool disabled, string domain) { ADHelper ad = new ADHelper(domain, ActiveDirectoryService.CnnStringName, performCustomWindowsContextImpersonalization); ad.User_SetActivation(userName, disabled); ad.Dispose(); }
internal static ActiveDirectoryUser User_Info(string userName, string domain) { ADHelper ad = new ADHelper(domain, ActiveDirectoryService.CnnStringName, performCustomWindowsContextImpersonalization); ADUser usr = ad.User_Get_ByName(userName); if (usr != null) return null; return new ActiveDirectoryUser(usr); }
internal static void User_Lock(string userName, string domain) { ADHelper ad = new ADHelper(domain, ActiveDirectoryService.CnnStringName, performCustomWindowsContextImpersonalization); ad.User_SetLockedStatus(userName,true); }