2010-05-11 21 views

Respuesta

6

Aún más fácil - utilizar el nuevo .NET 3.5 System.DirectoryServices.AccountManagement características.

vea el artículo de MSDN Managing Directory Security Principals in the .NET Framework 3.5 para más detalles.

PrincipalContext ctx = new PrincipalContext(ContextType.Domain. "YOURDOMAIN"); 

UserPrincipal user = UserPrincipal.FindByIdentity(ctx, loginName); 

if(user != null) 
{ 
    string empID = user.EmployeeId; 
} 

Las nuevas clases principales fuertemente tipadas hacen que trabajar con AD sea muy fácil.

+0

Sí, eso es más simple. Tenga en cuenta que es UserPrincipal.EmployeeId no ... Identificación Gracias – Graeme

+1

Gracias Marc, yo estaba buscando la manera de conseguir un principal de usuario de una identidad de Windows. Aquí me di cuenta de que si tengo el dominio puedo hacerlo, sin nada que hacer con mi objeto Identidad de Windows. – Veverke

-1

AD usados ​​consulta - muy simple:

DirectorySearcher ds = new DirectorySearcher(); 
ds.PropertiesToLoad.Add("employeeID"); 
ds.Filter = String.Format("(&(objectCategory=person)(sAMAccountName={0}))", loginName); 

result = ds.FindOne(); 
if (result != null) 
{ 
    personnelNumber = result.Properties["employeeID"][0].ToString(); 
} 
+0

dónde viene resultado viene? "result = ds.FindOne();" –

Cuestiones relacionadas