我正在尝试读取已在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);
}
}
}
答案 0 :(得分:0)
我无法找到任何支持DirectoryEntry的证据。
UserPrincipal实际上只是DirectoryEntry的包装器,正如GetUnderlyingObject方法的文档所暗示的那样。
您可以使用DirectoryEntry中的属性获取AD中的任何属性。