我有像 MyDomain.com 这样的 AD 域名和像 MD (MD=MyDomain) 这样的 Windows 登录域名。如何使用DirectoryEntry.Properties集合从 AD 域获取 win 登录域名?
1 回答
0
可能,你可以使用这个:
string username = "<username>";
DirectoryEntry de = new DirectoryEntry(
"LDAP://" + ConfigurationManager.AppSettings["ADDomain"],
ConfigurationManager.AppSettings["ADUsername"],
ConfigurationManager.AppSettings["ADPassword"]);
DirectorySearcher ds = new DirectorySearcher(de);
ds.Filter = string.Format("samaccountname={0}",
(username.Split('\\').Length > 1) ? username.Split('\\')[1] : username);
SearchResult result = ds.FindOne();
if (result == null)
throw new ArgumentException(
string.Format("Username '{0}' does not exist in the active directory", username), "username");
然后,您可以使用 SearchResult 对象上的 Properties 集合从用户对象中获取信息(例如 result.Properties["samaccountname"])。一些有用的键是:
- 列表项 samaccountname(Windows 用户名)
- 列表项 displayName(全名)
- 列表项电话号码
- 列表项邮件(电子邮件地址)
- 列表项部门(用户所属部门)
于 2011-10-06T08:10:12.350 回答