获取Active Directory中用户的自定义属性值

时间:2016-02-17 22:26:07

标签: asp.net-mvc asp.net-mvc-5 active-directory .net-4.6

我正在尝试读取已在Active Directory中添加的一些自定义属性的值,但我找不到任何解释如何执行此操作的内容。我找到了一个页面,帮助我建立连接并找到用户,这使我可以阅读一些预先制作的属性,但它没有涵盖如何阅读自定义属性。在Google / SO上搜索我发现的所有内容都是过时的使用DirectoryEntry的说明,这些说法似乎已在稍后发布的.Net中删除。我说这是因为Visual Studio不知道该对象是什么或它属于哪个命名空间。

有谁能告诉我应该如何阅读自定义属性?

using System.DirectoryServices.AccountManagement;
using System.Web.Mvc;

namespace JobSight.WebUI.Controllers
{
    public class BaseController : Controller
    {
        protected override void OnActionExecuted(ActionExecutedContext filterContext)
        {
            base.OnActionExecuted(filterContext);
            UpdateUserFromAD();
        }

        private void UpdateUserFromAD()
        {
                var Context = new PrincipalContext(ContextType.Domain, "DomainController");
                var UserData = UserPrincipal.FindByIdentity(Context, User.Identity.Name);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我无法找到任何支持DirectoryEntry的证据。

UserPrincipal实际上只是DirectoryEntry的包装器,正如GetUnderlyingObject方法的文档所暗示的那样。

您可以使用DirectoryEntry中的属性获取AD中的任何属性。