2010-03-23 4 views

Répondre

-1

Vous pouvez obtenir ce en utilisant la méthode LookupAccountSid() pour appeler à Win32. Il y a un exemple de code sur la page que j'ai liée à qui montre un exemple simple.

6

Si vous êtes sur .NET 3.5, consultez cet excellent article MSDN Managing Directory Security Principals in the .NET Framework 3.5.

Il montre les nouvelles capacités de recherche améliorées de l'espace de noms System.DirectoryServices.AccountManagement de .NET 3.5. Une caractéristique intéressante est la méthode FindByIdentity, qui vous permet de trouver un utilisateur (ou un groupe) basé sur une identité - que ce soit le nom principal de l'utilisateur, le nom distinctif, un GUID ou le SID - cela fonctionnera :

UserPrincipal user = 
    UserPrincipal.FindByIdentity(principalContext, 
           IdentityType.Sid, (value)); 

Vous devez vous assurer de fournir le SID dans le format approprié - voir la documentation MSDN pour plus de détails.

Une fois que vous avez l'utilisateur objet principal, simplement obtenir son nom d'utilisateur principal:

if(user != null) 
{ 
    string upn = user.UserPrincipalName; 
} 

L'exemple de code pour l'article a même deux méthodes d'assistance supplémentaires FindByIdentityGuid et FindByIdentitySid pour atteindre exactement ce que vous cherchez !

Allez y jeter un coup d'œil et utilisez-le.

+0

Malheureusement, je suis coincé sur .Net 2.0, mais il est bon de savoir que cela existe pour quand nous mettons à jour. Merci –

Questions connexes