Tôi đang sử dụng không gian tên System.DirectoryServices.AccountManagement để tìm người dùng miền và nhóm bảo mật AD tương ứng của họ. Điều này hoạt động tốt.Tìm các nhóm địa phương mà người dùng miền thuộc về?
Tôi cũng đang sử dụng không gian tên đó để truy vấn các nhóm bảo mật cục bộ trên máy chủ từ xa. Tôi có thể tìm thấy một nhóm bảo mật và sau đó liệt kê những người dùng của nhóm đó không có vấn đề gì.
Những gì tôi đang gặp vấn đề với được hiển thị mà nhóm ĐỊA PHƯƠNG người dùng DOMAIN thuộc về:
PrincipalContext localmachine = new PrincipalContext(ContextType.Machine, "ServerName");
PrincipalContext domain = new PrincipalContext(ContextType.Domain);
// find the user using the domain context (Works fine)
UserPrincipal user = UserPrincipal.FindByIdentity(domain, userName);
// if found - grab its groups
if (user != null)
{
// The get groups method is the only method that would accept a new context
PrincipalSearchResult<Principal> groups = user.GetGroups(localMachine);
// no groups are returned .... removed rest of code
}
Tôi đang cố gắng sử dụng các phương pháp GetGroups đi qua trong LocalMachine PrincipalContext nhưng không có nhóm được trả về.
Người dùng chỉ tồn tại trong AD miền. Không có mục nhập nào cho người dùng này trong người dùng cục bộ trên localMachine. Người dùng miền được thêm vào nhóm bảo mật cục bộ.
Bất kỳ ý tưởng nào? Tôi muốn để có thể kéo một danh sách của tất cả các nhóm địa phương người dùng miền này thuộc về và sau đó xem nếu một nhóm nhất định tồn tại trong danh sách đó. Tùy chọn duy nhất hiện đang hoạt động là để tôi tìm kiếm một số nhóm nhất định trên hệ thống và xem liệu người dùng miền thuộc về nhóm đó hay không.
tương tự câu hỏi ở đây - hy vọng của một số sử dụng - http://stackoverflow.com/questions/4809460/determine-nested-groups-of-windowsidentity-instance – dash
Tôi đã thử làm theo cách đó. Phương thức FindByIdentity trả về null khi tìm kiếm người dùng trên máy. Tôi cho rằng điều này là do không có người dùng cục bộ thực sự được tạo ra. Nó là một người dùng miền. Tôi đã cố gắng chuyển vào tên người dùng có và không có miền được thêm vào. –
Đào qua một số mã cũ, tôi thấy rằng tôi đã thực hiện nó chính xác theo cách bạn mô tả; liệt kê các nhóm máy nội bộ (thông qua DirectorySearcher), và sau đó liệt kê các nhóm máy đó để xem liệu tôi có thể tìm thấy một nhóm người dùng là thành viên hay không. Chúng tôi cũng có một hệ thống phân cấp khá nông. Xin lỗi không thể giúp đỡ nhiều hơn. – dash