using System.DirectoryServices;
using System.DirectoryServices.ActiveDirectory;
Y luego el código es el siguiente:
DirectoryContext dc = new DirectoryContext(DirectoryContextType.Domain, Environment.UserDomainName);
Domain domain = Domain.GetDomain(dc);
DirectoryEntry de = domain.GetDirectoryEntry();
LlenarUsuarios(de);
Este es el método para llenar los usuarios:
private void LlenarUsuarios(DirectoryEntry de)
{
DirectorySearcher deSearch = new DirectorySearcher(de);
deSearch.Filter = "(&(objectClass=user)(objectCategory=person))";
SearchResultCollection results = deSearch.FindAll();
foreach (SearchResult srUser in results)
{
DirectoryEntry deUser = srUser.GetDirectoryEntry();
int flag = (int)deUser.Properties["userAccountControl"].Value;
bool mActivo = false;
if (!Convert.ToBoolean(flag & 0x0002)) mActivo = true;
if (deUser.Properties["sAMAccountName"].Value.ToString().Contains(".") && mActivo) CheckBoxList1.Items.Add(deUser.Properties["sAMAccountName"].Value.ToString());
}
De nuevo espero haberles sido de utilidad.
Muy buen aporte..... gracias te la discutiste
ResponderEliminarEstoy usando windows server 2012 y me sale este error the specified domain either does not exist or could not be contacted en estas lineas:
ResponderEliminarDirectoryContext dc = new DirectoryContext(DirectoryContextType.Domain, Environment.UserDomainName);
Domain domain = Domain.GetDomain(dc);
Justo lo que estaba buscando. Muchas gracias. Además es un código limpio y sencillo.
ResponderEliminar