我正在开发一款使用Windows身份验证的C#和ASP.Net应用程序。
即在Web.config中:
<system.web>
<authentication mode="Windows" />
</system.web>
我想从Active Directory中获取当前用户的详细信息(全名、电子邮件地址等)。
我可以通过以下方式获取他们的Windows 2000之前的用户登录名(例如:SOMEDOMAIN\someuser
):
string username = HttpContext.Current.Request.ServerVariables["AUTH_USER"];
我已经通过使用用户的当前登录名(而不是他们的Windows 2000之前的用户登录名)来解决了LDAP查询问题:
DirectorySearcher adSearch = new DirectorySearcher(
"(userprincipalname=someuser@somedomain.com.au)");
SearchResult adSearchResult = adSearch.FindOne();
然而,我不知道如何使用用户的pre W2K登录名搜索AD,或者获取他们的登录名以“someuser@somedomain.com.au”的格式。
有什么想法吗?
username@DOMAIN
。 - Alan