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

Get value of custom attribute for user in Active Directory

我正在尝试读取已添加到 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);
        }
    }
}

我找不到任何证据表明对 DirectoryEntry 的支持正在被删除。

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

您将能够使用 DirectoryEntry 中的属性来获取 AD 中的任何属性。