Jeśli korzystasz z .NET 3.5, sprawdź ten znakomity artykuł MSDN Managing Directory Security Principals in the .NET Framework 3.5.
Pokazuje nowe możliwości wyszukiwania rozszerzonego w przestrzeni nazw .NET 3.5 System.DirectoryServices.AccountManagement
.
Jedną z ciekawych funkcji jest metoda FindByIdentity
, która umożliwia znalezienie użytkownika (lub grupy) na podstawie tożsamości - bez względu na to, czy jest to główna nazwa użytkownika, nazwa wyróżniająca, identyfikator GUID czy identyfikator SID - po prostu zadziała. :
UserPrincipal user =
UserPrincipal.FindByIdentity(principalContext,
IdentityType.Sid, (value));
Musisz upewnić się, że identyfikator SID jest prawidłowy - więcej informacji znajdziesz w dokumentacji MSDN.
Gdy masz główny obiekt użytkownika, po prostu swoje główne Nick:
if(user != null)
{
string upn = user.UserPrincipalName;
}
Przykładowy kod artykułu ma nawet dwa dodatkowe metody pomocnika FindByIdentityGuid
i FindByIdentitySid
aby osiągnąć dokładnie to, czego szukasz !
Sprawdź to i wykorzystaj.
Niestety utknąłem na .Net 2.0, ale dobrze jest wiedzieć, że istnieje po aktualizacji. Dzięki –