Vì bạn trên .NET 4, bạn nên kiểm tra không gian tên System.DirectoryServices.AccountManagement
(S.DS.AM). Đọc tất cả về nó ở đây:
Về cơ bản, bạn có thể xác định một bối cảnh miền và dễ dàng tìm người sử dụng và/hoặc nhóm trong AD:
// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// find a user - by e.g. his "samAccountName", or the Windows user name or something
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "SomeUserName");
if(user != null)
{
// do something here....
string samAccountName = user.SamAccountName;
}
Nếu bạn không thể tìm thấy người dùng được chỉ định bởi tên người dùng, bạn cũng có thể sử dụng chức năng tìm kiếm mới:
// define a "query-by-example" principal - here, we search for a UserPrincipal
// and with the first name (GivenName) and a last name (Surname)
UserPrincipal qbeUser = new UserPrincipal(ctx);
qbeUser.GivenName = firstName;
qbeUser.Surname = lastName;
// create your principal searcher passing in the QBE principal
PrincipalSearcher srch = new PrincipalSearcher(qbeUser);
// find all matches
foreach(var found in srch.FindAll())
{
// do whatever here - "found" is of type "Principal" - it could be user, group, computer.....
}
S.DS.AM mới giúp bạn dễ dàng chơi với người dùng và nhóm trong AD! Và chỉ cần tìm một người dùng duy nhất cũng nên tương đối nhanh.
Nguồn
2012-04-20 15:53:08
giúp đỡ rất nhiều, tôi muốn tôi có thể chấp nhận tất cả các anwsers của chàng trai của bạn – user1225072
@marc_s này là chính xác những gì tôi đang tìm kiếm, hoàn hảo, cảm ơn. .. tuy nhiên, tôi đã tìm ra cách khó mà nếu bất kỳ trường nào bạn yêu cầu từ người dùng để tìm kiếm là không cần thiết, bỏ qua thuộc tính tương ứng trong 'UserPrincipal'. Ban đầu tôi đang đẩy 'string.empty' và sau đó thậm chí là' null' và đã có ** không ** kết quả trả về. Tuy nhiên, ngay sau khi tôi thêm câu lệnh 'if' và bỏ qua mục đó trong' UserPrincipal', cuối cùng tôi đã trả về kết quả (_ie: skipped ** GivenName ** khi ** FirstName ** không được điền, thay vì cài đặt tới default_). – famousKaneis