在Active Directory中添加新用户

时间:2012-01-20 03:35:50

标签: c# asp.net .net active-directory

我正在使用VS2005 .NET 2.0 C#。

我目前正在引用一个关于在asp网页上实现AD用户管理的网站。

我见过adds user to group的一种方法。

但是,有些参数我不明白,知道要替换什么。

以下是提供的方法:

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();

    }
}

userDngroupDn已被解释,但我仍然不知道该填写什么

userDn:用户的distinguishedName:CN=user, OU=USERS, DC=contoso, DC=com groupDn:该组的distinguishedName:CN=group,OU=GROUPS,DC=contoso,DC=com

我可以知道2个参数是什么,我可以从哪里获取它们?

1 个答案:

答案 0 :(得分:2)

目录是一个树,每个对象都是一个节点。此tre中的每个对象都有一个专有名称(DN),它看起来有点像计算机的DNS名称。您可以使用资源工具包中的LDP.EXE工具(或在W2K8上本机安装)查看具有LDAP愿景的Active-Directory。您将在此处找到一个LDAP AD愿景

LDP vision of an AD

代表

MMC vision of an AD

你怎么能找到它们:

对于小组:

DirectoryEntry deBase = new DirectoryEntry("LDAP://dom.fr/dc=dom,dc=fr");
/* Directory Search for a group
 */
DirectorySearcher dsLookForGrp = new DirectorySearcher(deBase);
dsLookForGrp.Filter = String.Format("(cn={0})", "yourgroup");
dsLookForGrp.SearchScope = SearchScope.Subtree;
dsLookForGrp.PropertiesToLoad.Add("distinguishedName");
SearchResult srcGrp = dsLookForGrp.FindOne();

string groupDN = srcGrp.Properties["distinguishedName"][0];

对于用户:

/* Directory Search
 */
DirectorySearcher dsLookForUser = new DirectorySearcher(deBase);
dsLookForUser.Filter = String.Format("(&(objectCategory=person)(sAMAccountName={0}))", YourUser);
dsLookForUser.SearchScope = SearchScope.Subtree;
dsLookForUser.PropertiesToLoad.Add("distinguishedName");
dsLookForUser.PropertiesToLoad.Add("userPrincipalName  ");
dsLookForUser.PropertiesToLoad.Add("sAMAccountName");
SearchResult srcUser = dsLookForUser.FindOne();

string userDN = srcUser .Properties["distinguishedName"][0];