Tôi đang viết các phương pháp sau để thêm và xóa người dùng khỏi thư mục hoạt động trong C#.Thêm và xóa người dùng khỏi các nhóm Active Directory trong .NET
void AddUserToGroup(string userId, string groupName);
void RemoveUserFromGroup(string userId, string groupName);
Cách tốt nhất để triển khai các phương pháp này?
Đây là một số mã từ CodeProject. Tôi không thể nhìn thấy nơi máy chủ AD được chỉ định trong các ví dụ này mặc dù? (là nó được cung cấp ngầm bởi .NET framework khi sử dụng giao thức LDAP?). Những ví dụ này có đáng giá không?
public void AddToGroup(string userDn, string groupDn)
{
try
{
DirectoryEntry dirEntry = new DirectoryEntry("LDAP://" + groupDn);
dirEntry.Properties["member"].Add(userDn);
dirEntry.CommitChanges();
dirEntry.Close();
}
catch (System.DirectoryServices.DirectoryServicesCOMException E)
{
//doSomething with E.Message.ToString();
}
}
public void RemoveUserFromGroup(string userDn, string groupDn)
{
try
{
DirectoryEntry dirEntry = new DirectoryEntry("LDAP://" + groupDn);
dirEntry.Properties["member"].Remove(userDn);
dirEntry.CommitChanges();
dirEntry.Close();
}
catch (System.DirectoryServices.DirectoryServicesCOMException E)
{
//doSomething with E.Message.ToString();
}
}
System.DirectorServices.AccountManagement chỉ khả dụng trong> = 3.5, thay vào đó hơn 3.0 – regex
Mã dưới đây hoạt động cho tôi *** group.Members.Remove (UserPrincipal.FindByIdentity (pc, userId)); *** thay vì *** "group.Members.Remove (pc, IdentityType.UserPrincipalName, userId) "***. Lưu ý: id người dùng của tôi chỉ là "USERNAME" mà không cần thêm tên miền – Rama
Vâng, quá tải cũng hoạt động, nó chỉ là một cuộc gọi bổ sung vào dịch vụ LDAP để nhận danh tính người dùng trước khi gửi cuộc gọi xóa. Thành thật mà nói, có thể chúng tương đương với chức năng vì API có thể gọi vào LDAP cho danh tính dựa trên tên người dùng trước khi thực hiện xóa. –