如何解决在Active Directory中搜索与电子邮件地址关联的所有用户名
|| 我有一种方法可以根据电子邮件地址在Active Directory中搜索用户名。在某些情况下,给定电子邮件地址可能有多个用户名,而我试图捕获这些用户名。我已经重写了我的方法,但是似乎语法不太正确。我认为问题是这条线。foreach (Object myObject in result.Properties[property])
谢谢,
杰森
private String FindNameByEmail(string emailAddress)
{
DirectoryEntry entry = GetDirectoryEntry();
emailAddress = txtEmailID.Text;
DirectorySearcher search = new DirectorySearcher(entry);
search.Filter = \"(&(objectCategory=person)(sAMAccountName=*)(mail=\" + emailAddress + \"))\";
string[] properties = new string[] { \"SAMAccountName\" };
foreach (String property in properties)
search.PropertiesToLoad.Add(property);
SearchResultCollection result = search.FindAll();
if (result != null)
{
foreach (String property in properties)
foreach (Object myObject in result.Properties[property])
lblUserName.Text = myObject.ToString();
return \"User Found\";
}
else
{
lblStatus.Text = \"user does not exist\";
return \"User Does Not Exist\";
}
}
解决方法
编辑:更改为输出到字符串列表
开始了:
List<string> usernames = new List<string>();
if (result != null)
{
foreach (SearchResult sr in result)
{
usernames.Add((string)sr.Properties[\"SAMAccountName\"][0]);
}
}
listBox1.DataSource = usernames; //Where listbox is declared in your markup
listBox1.DataBind();
只需将您的if(结果!= null)逻辑替换为myne
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。