我搜索了很长时间一个完整的答案,了解如何使用C#在Active Directory中创建用户,我找不到任何答案。
我想了解的步骤(包括指定AD凭据的位置)。
我不介意用户是使用System.DirectoryServices
还是System.DirectoryServices.AccountManagement
创建的。
以下是详细信息。 DC
是远程计算机(坐在我的网络中)。例如,域名为contoso-test.com
。
答案 0 :(得分:1)
一点谷歌搜索和耐心都可以解决问题。
这是我之前写过的示例代码。
public static string CreateUser(string username, string password)
{
//CREATE CONNECTION TO ACTIVE DIRECTORY
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "contosco-test.com"))
{
//CREATE A NEW USERPRINCIPAL OBJECT
using (UserPrincipal principal = new UserPrincipal(ctx))
{
principal.Enabled = true; //IF NOT ENABLED YOU CAN'T AUTHENTICATE THE USER
principal.UserPrincipalName = username;
principal.Name = "name";
principal.DisplayName = "firstname lastname";
principal.EmailAddress = "email@test.com";
principal.VoiceTelephoneNumber = "12345678910";
principal.GivenName = "firstname";
principal.Surname = "lastname";
principal.SetPassword(password);
try
{
principal.Save();
}
catch(Exception ex)
{
throw;
}
//SEARCH FOR THE USER THAT JUST HAS BEEN CREATED
using (var newUser = UserPrincipal.FindByIdentity(ctx, IdentityType.UserPrincipalName, username))
{
if (newUser != null)
{
return newUser.Guid.ToString();
}
}
}
}
return null;
}
我正在使用System.DirectoryServices.AccountManagement
命名空间。
答案 1 :(得分:0)
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();
}
}