AD基础知识以及查询与递归

AD的管理和应用:

AD工具:

 运行-dsa.msc,打开Active Directory 用户和计算机 ,实现对AD数据的查看编辑,修改等

在server08中,开始-管理工具-ADSI编辑器(或Active Directory 用户和计算机),ADSI编辑器可实现对AD用户的快速查找,修改更新等。

AD工具的 安装:服务器管理器--功能--添加新功能-远程-角色-ad ds工具


adsi编辑器属性参数:

域名:msuc14.com,代表AD用户管理下的所有成员,所有域内的计算机菊科访问AD用户。

DC:s1.msuc14.com,s1表示承载注册该域名并通过域名连接管理其他电脑的服务器电脑连接该主机,表示一台具体的域内计算机的数据,同一域名下多个不同DC。

LdaP:OU=test,dc=msuc14,dc=com 域名倒序写入。

path: string.Format("LDAP://{0}/{1}", dc, LdaP); 指定唯一的查询OU,User数据的路径。

操作如下:

string path= string.Format("LDAP://{0}/{1}", dc, ladp);
DirectoryEntry  Ad_DC = new DirectoryEntry(path);通过path查找并实例化该对象属性值并调用Ad_DC.Properties["distinguishedName"].Value

//AD 身份验证
//DirectoryEntry用于登陆ad全局只要存在的用户,deSearch.Filter则细化过滤指定ldap下的用户匹配,(身份验证后实例化属性)

模拟身份登录并验证密码,无效则de为null,否则,身份密码验证通过,可查询该对象并获取该对象的属性值
         DirectoryEntry de = new DirectoryEntry(domainLDAP,loginName, pwd, AuthenticationTypes.Secure);
                    DirectorySearcher deSearch = new DirectorySearcher(de);
                    deSearch.Filter = "(|(displayName=" + loginName + ")(userPrincipalName=" + loginName + "))";
                    deSearch.SearchScope = SearchScope.Subtree;
                    SearchResult result = deSearch.FindOne();
                    if (result != null)
                    {
                        DirectoryEntry CN = result.GetDirectoryEntry();
                        accountName = CN.Properties["userPrincipalName"].Value.ToString();
                        de = new DirectoryEntry(result.Path);
                        isExist = true;
                    }

用后记得释放该对象

              if (de!= null)
                {
                    de.Close();
                    de.Dispose();
                    de= null;
                }

原文地址:https://www.cnblogs.com/wangfengderizi/p/2825028.html