我已经尝试使用How to get email address with window authentication,但仍然存在一个问题:
我知道如何询问 John Smith 的电子邮件地址,但我得到的身份验证名称类似于 INTRA\\JohnSmith3 或 DEP21\\JohnSmith
如何将 INTRA\\JohnSmith3 或 DEP21\\JohnSmith 映射到 AD 中的正确 John Smith?
我已经尝试使用How to get email address with window authentication,但仍然存在一个问题:
我知道如何询问 John Smith 的电子邮件地址,但我得到的身份验证名称类似于 INTRA\\JohnSmith3 或 DEP21\\JohnSmith
如何将 INTRA\\JohnSmith3 或 DEP21\\JohnSmith 映射到 AD 中的正确 John Smith?
您从 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();