-1

我有像 MyDomain.com 这样的 AD 域名和像 MD (MD=MyDomain) 这样的 Windows 登录域名。如何使用DirectoryEntry.Properties集合从 AD 域获取 win 登录域名?

4

1 回答 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 回答