Asp.net mvc 获取Active Directory中用户的自定义属性值
我试图读取Active Directory中添加的一些自定义属性的值,但找不到任何解释如何执行此操作的内容。我找到了一个帮助我建立连接并找到用户的页面,这允许我阅读一些预先制作的属性,但没有介绍如何阅读自定义属性。在Google上搜索,我发现的都是过时的指令,使用Asp.net mvc 获取Active Directory中用户的自定义属性值,asp.net-mvc,asp.net-mvc-5,active-directory,.net-4.6,Asp.net Mvc,Asp.net Mvc 5,Active Directory,.net 4.6,我试图读取Active Directory中添加的一些自定义属性的值,但找不到任何解释如何执行此操作的内容。我找到了一个帮助我建立连接并找到用户的页面,这允许我阅读一些预先制作的属性,但没有介绍如何阅读自定义属性。在Google上搜索,我发现的都是过时的指令,使用DirectoryEntry,这些指令似乎在后来发布的.Net中被删除了。我这样说是因为VisualStudio不知道该对象是什么,也不知道它属于什么名称空间 有人能告诉我如何读取自定义属性吗 using System.Director
DirectoryEntry
,这些指令似乎在后来发布的.Net中被删除了。我这样说是因为VisualStudio不知道该对象是什么,也不知道它属于什么名称空间
有人能告诉我如何读取自定义属性吗
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的包装器,正如该方法的文档中所暗示的那样
您可以使用DirectoryEntry中的属性来获取AD中的任何属性。当我执行一个简单的
var test=new DirectoryEntry()
Visual Studio会向我提示错误“名称空间'DirectoryEntry'的类型不存在,您是否缺少引用”,但当我请求使用它的建议时,它没有任何引用。如果我使用System.DirectoryServices添加,就像所有旧的/过时的示例所说的那样,在尝试调用“DirectoryEntry”时会遇到相同的错误。如果它没有被删除,那么它所在的名称空间是什么?如果UserPrincipal
只是一个说唱歌手,那么它是否应该公开Properties
方法,以便我可以搜索我的自定义属性?添加一个“using”语句是不够的。您还必须在项目中添加引用。在解决方案资源管理器中的项目下,右键单击“引用”,然后单击“添加”。在弹出的窗口中找到“System.DirectoryServices”并添加它。