获取 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 中的任何属性。
我正在尝试读取已添加到 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 中的任何属性。