php ldap 读取ad域用户账户玄仙,C#读取AD域里用户名或组(仅含类文件)

【实例简介】

C#读取AD域里用户名或组

【实例截图】

【核心代码】

///

/// 获得DirectoryEntry对象实例,以管理员登陆AD

///

///

private static DirectoryEntry GetDirectoryObject()

{

DirectoryEntry entry = new DirectoryEntry(ADPath, ADUser, ADPassword, AuthenticationTypes.Secure);

return entry;

}

///

/// 根据指定用户名和密码获得相应DirectoryEntry实体

///

///

///

///

private static DirectoryEntry GetDirectoryObject(string userName, string password)

{

DirectoryEntry entry = new DirectoryEntry(ADPath,

userName, password, AuthenticationTypes.None);

return entry;

}

///

/// i.e. /CN=Users,DC=creditsights, DC=cyberelves, DC=Com

///

///

///

private static DirectoryEntry GetDirectoryObject(string domainReference)

{

DirectoryEntry entry = new DirectoryEntry(ADPath domainReference, ADUser, ADPassword,

AuthenticationTypes.Secure);

return entry;

}

///

///  获得以UserName,Password创建的DirectoryEntry

///

///

///

///

///

private static DirectoryEntry GetDirectoryObject(string domainReference,

string userName, string password)

{

DirectoryEntry entry = new DirectoryEntry(ADPath domainReference,

userName, password, AuthenticationTypes.Secure);

return entry;

}

#endregion

#region GetDirectoryEntry

///

/// 根据用户公共名称取得用户的 对象

///

/// 用户公共名称

/// 如果找到该用户,则返回用户的 对象;否则返回 null

public static DirectoryEntry GetDirectoryEntry(string commonName)

{

DirectoryEntry de = GetDirectoryObject();

DirectorySearcher deSearch = new DirectorySearcher(de);

deSearch.Filter = "(&(&(objectCategory=person)(objectClass=user))(cn=" commonName "))";

deSearch.SearchScope = SearchScope.Subtree;

try

{

SearchResult result = deSearch.FindOne();

de = new DirectoryEntry(result.Path);

//de.Username = ADUser;

return de;

}

catch

{

return null;

}

}

///

/// 根据用户公共名称和密码取得用户的 对象。

///

/// 用户公共名称

/// 用户密码

/// 如果找到该用户,则返回用户的 对象;否则返回 null

public static DirectoryEntry GetDirectoryEntry(string commonName, string password)

{

DirectoryEntry de = GetDirectoryObject(commonName, password);

DirectorySearcher deSearch = new DirectorySearcher(de);

deSearch.Filter = "(&(&(objectCategory=person)(objectClass=user))(cn=" commonName "))";

deSearch.SearchScope = SearchScope.Subtree;

try

{

SearchResult result = deSearch.FindOne();

de = new DirectoryEntry(result.Path);

return de;

}

catch

{

return null;

}

}

///

/// 根据用户帐号称取得用户的 对象

///

/// 用户帐号名

/// 如果找到该用户,则返回用户的 对象;否则返回 null

public static DirectoryEntry GetDirectoryEntryByAccount(string sAMAccountName)

{

DirectoryEntry de = GetDirectoryObject(ADUser, ADPassword);

DirectorySearcher deSearch = new DirectorySearcher(de);

deSearch.Filter = "(&(&(objectCategory=person)(objectClass=user))(sAMAccountName=" sAMAccountName "))";

deSearch.SearchScope = SearchScope.Subtree;

try

{

SearchResult result = deSearch.FindOne();

de = new DirectoryEntry(result.Path, ADUser, ADPassword);

return de;

}

catch(Exception ex)

{

return null;

}

}

///

/// 根据用户帐号和密码取得用户的 对象

///

/// 用户帐号名

/// 用户密码

/// 如果找到该用户,则返回用户的 对象;否则返回 null

public static DirectoryEntry GetDirectoryEntryByAccount(string sAMAccountName, string password)

{

DirectoryEntry de = GetDirectoryEntryByAccount(sAMAccountName);

if (de != null)

{

string commonName = de.Properties["cn"][0].ToString();

if (GetDirectoryEntry(commonName, password) != null)

return GetDirectoryEntry(commonName, password);

else

return null;

}

else

{

return null;

}

}

///

/// 根据组名取得用户组的 对象

///

/// 组名

///

public static DirectoryEntry GetDirectoryEntryOfGroup(string groupName)

{

DirectoryEntry de = GetDirectoryObject();

DirectorySearcher deSearch = new DirectorySearcher(de);

deSearch.Filter = "(&(objectClass=group)(cn=" groupName "))";

deSearch.SearchScope = SearchScope.Subtree;

try

{

SearchResult result = deSearch.FindOne();

de = new DirectoryEntry(result.Path);

return de;

}

catch

{

return null;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值