我已经尝试使用How to obtain email address with window authentication,但问题仍然存在:
我知道如何询问John Smith的电子邮件地址,但我得到的身份验证名称就像INTRA \\ JohnSmith3或DEP21 \\ JohnSmith
如何将INTRA \\ JohnSmith3或DEP21 \\ JohnSmith映射到AD中正确的John Smith?
答案 0 :(得分:1)
从Windows身份验证中获得的是SAM帐户名称。您需要在Active Directory中查找。
您可以为这样的用户查询Active Directory:
(&(objectCategory=person)(objectClass=user)(sAMAccountName=JohnSmith3))
在代码中:
string filter = "(&(objectCategory=person)"
+ "(objectClass=user)"
+ "(sAMAccountName=" + samAccountName + "))";
DirectorySearcher search = new DirectorySearcher(myLdapConnection);
search.Filter = filter;
SearchResult result = search.FindOne();
DirectoryEntry de = result.GetDirectoryEntry();