Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 获取Active Directory中用户的自定义属性值_Asp.net Mvc_Asp.net Mvc 5_Active Directory_.net 4.6 - Fatal编程技术网

Asp.net mvc 获取Active Directory中用户的自定义属性值

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

我试图读取Active Directory中添加的一些自定义属性的值,但找不到任何解释如何执行此操作的内容。我找到了一个帮助我建立连接并找到用户的页面,这允许我阅读一些预先制作的属性,但没有介绍如何阅读自定义属性。在Google上搜索,我发现的都是过时的指令,使用
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”并添加它。