4

我有一个 MVC4 内网页面,想homeDirectory从 Active Directory 中获取属性。想知道从 AD 获取属性的最快方法。

4

1 回答 1

5

由于您使用的是 .NET 3.5 及更高版本,因此您应该查看System.DirectoryServices.AccountManagement(S.DS.AM) 命名空间。在这里阅读所有相关信息:

基本上,您可以定义域上下文并在 AD 中轻松找到用户和/或组:

// set up domain context
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain))
{
    // find a user
    UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "SomeUserName");

   if(user != null)
   {
      // do something here....      
      string homeDrive = user.HomeDrive;
      string homeDirectory = user.HomeDirectory;
   }
}

如果您在 ASP.NET MVC 应用程序中使用 Windows 身份验证,您还可以像这样获取当前登录的用户:

UserPrincipal currentUser = UserPrincipal.Current;

但通常情况下,在 Web 应用程序中,这类似于用户(而不是浏览器中的用户)NETWORK SERVICE......IUSER_machineName

新的 S.DS.AM 使得在 AD 中与用户和组一起玩变得非常容易!

于 2012-12-10T06:06:35.313 回答