privateconststringdomainName="ms.com";
privateconststringadAdmin="administrator";
privateconststringpassword="pass@word1";
privateconststringouName="XX有限公司";
privateDataTableGetADUsers()
{
DataTabledt=newDataTable();
dt.Columns.Add("sAMAccountName");//帐号
dt.Columns.Add("Name");//姓名
dt.Columns.Add("mail");//邮箱地址
dt.Columns.Add("OU");//用户组织
DirectoryEntryadRoot=newDirectoryEntry("LDAP://"+domainName,adAdmin,password,AuthenticationTypes.Secure);
DirectoryEntryou=adRoot.Children.Find("OU="+ouName);
DirectorySearchermySearcher=newDirectorySearcher(ou);
mySearcher.Filter=("(objectClass=user)");//user表示用户,group表示组
foreach(System.DirectoryServices.SearchResultresEntinmySearcher.FindAll())
{
DataRowdr=dt.NewRow();
dr["sAMAccountName"]=string.Empty;
dr["Name"]=string.Empty;
dr["mail"]=string.Empty;
dr["OU"]=string.Empty;
DirectoryEntryuser=resEnt.GetDirectoryEntry();
if(user.Properties.Contains("sAMAccountName"))
{
dr["sAMAccountName"]=user.Properties["sAMAccountName"][0].ToString();
}
if(user.Properties.Contains("Name"))
{
dr["Name"]=user.Properties["Name"][0].ToString();
}
if(user.Properties.Contains("mail"))
{
dr["mail"]=user.Properties["mail"][0].ToString();
}
if(user.Parent.Name!=string.Empty&&user.Parent.Name.IndexOf('=')>-1)
{
//获取用户所在的组织单位
dr["OU"]=user.Parent.Name.Split('=')[1];
}
dt.Rows.Add(dr);
}
returndt;
}
}
如果想要知道用户信息中都包含哪些字段,可以foreach出来看看
DirectoryEntryuser=resEnt.GetDirectoryEntry();
foreach(stringpropertyinuser.Properties.PropertyNames)
{
Console.WriteLine("字段名:"+property);
}
private DataTable GetADUsersAllProperty()
{
Boolean done = true;
DataTable dt = new DataTable();
DirectoryEntry adRoot = new DirectoryEntry("LDAP://" + domainName);
DirectorySearcher mySearcher = new DirectorySearcher(adRoot);
mySearcher.Filter = ("(objectClass=user)"); //user表示用户,group表示组
foreach (System.DirectoryServices.SearchResult resEnt in mySearcher.FindAll())
{
DirectoryEntry user = resEnt.GetDirectoryEntry();
if (done)
{
foreach (string property in user.Properties.PropertyNames)
{
dt.Columns.Add(property);
}
done = false;
}
DataRow dr = dt.NewRow();
for (int i = 0; i < dt.Columns.Count; i++)
{
if (user.Properties.Contains(dt.Columns[i].ColumnName))
{
dr[i] = user.Properties[dt.Columns[i].ColumnName][0].ToString();
}else
dr[i] = string.Empty;
}
dt.Rows.Add(dr);
}
return dt;
}
分享到:
相关推荐
C# 获取域所有信息,ou, 用户组,域用户,邮件地址。并模拟域目录结构。
C#读取微软的AD域里的组织结构和用户信息,有2个版本的,网页版,和控制台版本。完整代码,能够直接运行。
验证AD域账号登陆,获取AD域用户列表,获取用户邮箱,修改密码等AD域操作
1. 读取AD域用户、组。 2.创建或删除用户。 3.创建或删除组。 4.用户移动到组。 5.登录。 等..
C#读取AD域里用户名或组
关于ASP.NET如何获取AD中的详细用户信息等方法的实现。其中主要依托CLR:DirectoryServices. ** File Name: AdHandler.cs ** Creator: ** Create date: ** Lastest Modifier: ** Lastest Modify date: ** ...
获取分配给计算机的 IP 它必须在 AD 管理员的计算机/会话上运行。 先决条件: 在客户端计算机上运行的 TightVNC 服务器(受密码保护!) 使用登录用户更新计算机描述的登录脚本 在客户端计算机上启用 WMI 安装 ...
使用Cypress和JavaScript构建的应用程序的UI测试UiTestAutomation.Tests:使用Selenium和C#对应用程序进行UI测试设置若要运行此应用程序,您将需要在Azure AD租户中创建应用程序注册和用户帐户。 建议所有这些操作...
通过使用自定义 LDAP 属性,最后一个通知存储在目录中,这样每个规则只通知用户一次。 此外,该机制允许在具有特定时间增量的多台机器上运行工具(例如通过 cron)以实现高可用性。选项-h , --help显示此帮助-c , -...
特征API应用程序可让您查询广告租户: 获取所有用户的列表按公司名称获取所有用户的列表通过用户主体名称(即)获取特定用户。 tom.kerkhove@codit.eu 遗漏了什么? 随意创建一个。安装您所要做的就是将此连接器托管...
2.2 C#中的数据类型 2.2.1 值类型 2.2.2 引用类型 2.2.3 装箱和拆箱 2.3 C#语言中的变量和常量 2.3.1 变量 2.3.2 常量 2.4 C#语言中的操作符和表达式 2.4.1 赋值运算符 2.4.2 算术运算符 2.4.3 比较...
net开放的体系架构允许将企业现有IT系统中的组织架构、用户信息,整合到BPM系统使用,不管他们是位于AD、HR还是位于特有的IT系统内。 业务流转时,可以集合存储在不同系统中的数据建立复合业务实体,比如:存储在...
一个ASP.NET Core 2.1 Web应用程序,它使用ASP.NET Core 2.1 Azure AD B2C身份验证中间件根据Azure AD B2C对最终用户进行身份验证,使用MSAL.NET获取访问令牌,然后使用此访问令牌访问Web API。
2.3C#中的数据类型 2.3.1整型 2.3.2浮点型 2.3.3布尔型 2.3.4字符型 2.3.5预定义引用类型 2.4C#中的变量和常量 2.4.1变量声明和赋值 2.4.2定义常量 2.4.3枚举类型 2.5C#中的操作符与表达式 2.5.1赋值运算符 2.5.2...
该示例涵盖了调用OpenID Connect身份提供程序(Azure AD B2C)以及使用MSAL从Azure AD B2C获取令牌的过程。 尖锐的 网络 天蓝色 天蓝色活动目录 Azure AD B2C:从ASP.NET Web应用程序调用ASP.NET Web API 此示例...
.2.3 C#中的数据类型 2.3.1 整型 2.3.2 浮点型 2.3.3 布尔型 2.3.4 字符型 2.3.5 预定义引用类型 2.4 C#中的变量和常量 2.4.1 变量声明和赋值 2.4.2 定义常量 2.4.3 枚举类型 2.5 C#中...
在Azure AD B2C中使用应用程序角色 :warning: 此仓库尚未准备就绪,无法使用 :warning: 一个使用现有Azure AD原语构建基于角色的基本授权系统的项目。 存储和顶级管理是通过Azure AD AppRole系统处理的。 在登录时,...