我正在使用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();
}
}
userDn
和groupDn
已被解释,但我仍然不知道该填写什么
userDn
:用户的distinguishedName:CN=user, OU=USERS, DC=contoso, DC=com
groupDn
:该组的distinguishedName:CN=group,OU=GROUPS,DC=contoso,DC=com
我可以知道2个参数是什么,我可以从哪里获取它们?
答案 0 :(得分:2)
目录是一个树,每个对象都是一个节点。此tre中的每个对象都有一个专有名称(DN),它看起来有点像计算机的DNS名称。您可以使用资源工具包中的LDP.EXE工具(或在W2K8上本机安装)查看具有LDAP愿景的Active-Directory。您将在此处找到一个LDAP 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];