我可以在Web表单上访问Active Directory用户的用户名吗?

时间:2012-02-16 19:49:16

标签: asp.net webforms active-directory

我的Active Directory域中的服务器上的IIS实例上有一个Web表单。

当域内的用户访问网络表单时,我是否可以使用类似的方式以编程方式捕获其AD用户名。

Page.User.Identity.Name

或者只是报告运行IIS的帐户名称?

我是否必须让用户专门登录才能在AD中查找?

如果没有,是否有我可以捕获的其他标识符,或者出于安全考虑,这是不可能的?

1 个答案:

答案 0 :(得分:1)

如果您的用户位于同一个域中,则可以使用集成Windows身份验证(IWA)。通过使用该身份验证方法,您的应用程序中将自动访问该身份。

ASP.NET site有一个关于使用IWA设置MVC站点的教程。我知道你正在使用WebForms,但代码是相当自我解释的。

如果要查询活动目录中的其他信息,只需使用类似于以下内容的内容(假设您有.NET 3.5或更高版本,其中System.DirectoryServices.AccountManagement库可用):

using (PrincipalContext context = new PrincipalContext(ContextType.Domain, "yourDomainName")) {
   using (UserPrincipal user = UserPrincipal.FindByIdentity(context, IdentityType.UserPrincipalName, theUserName)) {
      if (user != null) {
         //Do something with the user object.
      }
   }
}