Tôi cần tạo người dùng mới trong Active Directory. Tôi đã tìm thấy một số ví dụ như sau:Tạo người dùng Active Directory trong .NET (C#)
using System;
using System.DirectoryServices;
namespace test {
class Program {
static void Main(string[] args) {
try {
string path = "LDAP://OU=x,DC=y,DC=com";
string username = "johndoe";
using (DirectoryEntry ou = new DirectoryEntry(path)) {
DirectoryEntry user = ou.Children.Add("CN=" + username, "user");
user.Properties["sAMAccountName"].Add(username);
ou.CommitChanges();
}
}
catch (Exception exc) {
Console.WriteLine(exc.Message);
}
}
}
}
Khi tôi chạy mã này, tôi không gặp lỗi, nhưng không có người dùng mới nào được tạo.
Tài khoản tôi đang chạy thử nghiệm có đủ đặc quyền để tạo người dùng trong Đơn vị tổ chức đích.
Tôi có thiếu thứ gì đó (có thể một số thuộc tính bắt buộc của đối tượng người dùng) không?
Bất kỳ ý tưởng nào về lý do mã không đưa ra ngoại lệ?
EDIT
Sau đây làm việc cho tôi:
int NORMAL_ACCOUNT = 0x200;
int PWD_NOTREQD = 0x20;
DirectoryEntry user = ou.Children.Add("CN=" + username, "user");
user.Properties["sAMAccountName"].Value = username;
user.Properties["userAccountControl"].Value = NORMAL_ACCOUNT | PWD_NOTREQD;
user.CommitChanges();
Vì vậy, trên thực tế đã có một vài vấn đề:
CommitChanges
phải được gọi vàouser
(nhờ Rob)- Chính sách mật khẩu đã ngăn người dùng tạo (nhờ Marc)
Good catch !! :-) –
sức mạnh của việc đọc "hướng dẫn" trong hành động :) – balexandre