Nếu bạn đang sử dụng .NET 3.5, hãy xem bài viết MSDN tuyệt vời này Managing Directory Security Principals in the .NET Framework 3.5.
Nó cho thấy khả năng tìm kiếm nâng cao mới của không gian tên System.DirectoryServices.AccountManagement
của .NET 3.5.
Một tính năng đẹp là phương pháp FindByIdentity
, cho phép bạn tìm người dùng (hoặc nhóm) dựa trên danh tính - cho dù đó là tên người dùng chính, tên phân biệt, GUID hoặc SID - nó sẽ chỉ hoạt động :
UserPrincipal user =
UserPrincipal.FindByIdentity(principalContext,
IdentityType.Sid, (value));
Bạn cần đảm bảo cung cấp SID theo đúng định dạng - xem tài liệu MSDN để biết chi tiết.
Khi bạn có người sử dụng đối tượng chính, chỉ nhận được tên chính người sử dụng của nó:
if(user != null)
{
string upn = user.UserPrincipalName;
}
Mã mẫu cho bài viết thậm chí còn có hai phương pháp helper thêm FindByIdentityGuid
và FindByIdentitySid
để đạt được chính xác những gì bạn đang tìm kiếm !
Hãy kiểm tra và sử dụng nó.
Nguồn
2010-03-23 21:38:03
Thật không may là tôi bị kẹt trên .Net 2.0, nhưng thật tuyệt khi biết điều này tồn tại khi chúng tôi nâng cấp. Cảm ơn –