博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实现域登录 --- 介绍
阅读量:4971 次
发布时间:2019-06-12

本文共 2006 字,大约阅读时间需要 6 分钟。

使用C#访问 Active Directory域服务,需引用System.DirectoryServices命名空间,该命名空间包含两个组件类,DirectoryEntry和 DirectorySearcher。

DirectoryEntry类可封装 ActiveDirectory域服务层次结构中的节点或对象,使用此类绑定到对象、读取属性和更新特性; 

使用DirectorySearcher类可对 Active Directory域服务层次结构执行查询。 
如果仅要对AD的组织单元,群组和用户进行查询或者更改属性,使用上述两个类即可。

下面给出操作AD域的部分代码:

1、连接到域

DirectoryEntry objDE = new DirectoryEntry(ADname, Loginname, Loginpwd);

ADname :是域名,一般格式是:"LDAP://****";****为域的名字(一般是大写的英文字符串)Loginname: 登录域的用户名(保存在域中的名字,一般是中文名字的拼音)Loginpwd: 用户名对应的登录密码

2、查询域中的所有用户

DirectoryEntry objDE = new DirectoryEntry(ADtxt, Logintxt, Loginpwdtxt); 

string strFilter = "(&(objectCategory=person)(objectClass=user))"; 
DirectorySearcher objSearcher = new DirectorySearcher(objDE, strFilter); 
//排序 
objSearcher.Sort = new SortOption("name", SortDirection.Ascending); 
SearchResultCollection src = objSearcher.FindAll();
 
src 中保存了所有用户的所有信息

如果想查找域中所有的组织单元,可以把筛选字符串改为: 

string strFilter = "(&(objectCategory=organizationalUnit)(objectClass=organizationalUnit))";

如果想查找域中所有的群组,可以把筛选字符串改为: 

string strFilter = "(&(objectCategory=group)(objectClass=group))";

2.1 查看用户的所有属性

//获取域用户属性 

DirectoryEntry objDE = new DirectoryEntry(ADtxt, Logintxt, Loginpwdtxt); 
string strFilter = "(&(objectCategory=person)(objectClass=user))"; 
DirectorySearcher objSearcher = new DirectorySearcher(objDE, strFilter); 
//排序 
objSearcher.Sort = new SortOption("name", SortDirection.Ascending); 
SearchResultCollection src = objSearcher.FindAll() 
DirectoryEntry entry = src[102].GetDirectoryEntry(); 
foreach (string pro in entry.Properties.PropertyNames) 
this.tbLog.Text += entry.Properties[pro].PropertyName + ".........." + entry.Properties[pro].Value.ToString() + " \r\n"; 
}

或者:

foreach (string strPropNamein src[102].Properties.PropertyNames) 

this.tbLog.Text +=strPropName; 
}

2.2 查看用户的属性内容

foreach (SearchResult sr in src) 

string chinesename = sr.Properties["name"][0].ToString(); 
string englishname= sr.Properties["samaccountname"][0].ToString();} 

本文出自he ivy 的博客,转载请注明出处:

转载于:https://www.cnblogs.com/liyangqq/p/7224692.html

你可能感兴趣的文章
第四周作业:java实现邮件发送
查看>>
基环树找环-模板
查看>>
Python import 导入指定目录的某块
查看>>
理解爬虫原理
查看>>
ORA-01940:无法删除当前已链接的用户(转)
查看>>
Android手机里H5页面滚动图片时出现白屏
查看>>
使用过滤器解决JSP页面的乱码问题
查看>>
sql完整事务
查看>>
Node 连接池pool
查看>>
WebApi接口文档
查看>>
表单元素系列一
查看>>
算法面试题java
查看>>
如何推行Code Review
查看>>
JSON.parse()与JSON.stringify()高级用法
查看>>
git相关
查看>>
NOIP模拟题——细胞分裂
查看>>
设计模式1:简单工厂模式学习
查看>>
find 命令的参数详解
查看>>
mysql 主从复制
查看>>
06 django视图层
查看>>