加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

在ASP.NET中访问Active Directory?

发布时间:2020-12-16 03:54:44 所属栏目:asp.Net 来源:网络整理
导读:我使用控制台应用程序编写一些测试代码: /// summary /// Returns AD information for a specified userID. /// /summary /// param name="ntID"/param /// returns/returns public ADUser GetUser(string ntID) { DirectorySearcher search = new Director
我使用控制台应用程序编写一些测试代码:

/// <summary>
    /// Returns AD information for a specified userID.
    /// </summary>
    /// <param name="ntID"></param>
    /// <returns></returns>
    public ADUser GetUser(string ntID)
    {            
        DirectorySearcher search = new DirectorySearcher();         
        search.Filter = String.Format("(cn={0})",ntID);

        search.PropertiesToLoad.Add("mail");
        search.PropertiesToLoad.Add("givenName");
        search.PropertiesToLoad.Add("sn");
        search.PropertiesToLoad.Add("displayName");
        search.PropertiesToLoad.Add("userPrincipalName");            
        search.PropertiesToLoad.Add("cn");

        SearchResult result = search.FindOne();

        return new ADUser(result);
    }

这在控制台应用程序中运行良好.但是,当我将其移动到ASP.NET应用程序时,我收到一条错误消息,指出不知道正确的域.

在ASPNET帐户上运行时,是否存在访问AD的技巧?

编辑:只传递LDAP://域连接字符串是不够的,因为它需要一个实际的登录/密码.因为它运行在计算机上的本地帐户上,所以我不确定要使用哪个AD L / P.我可以以某种方式将访问用户帐户委托给它吗?

编辑#2:当尝试使用身份模拟时,我得到一个DirectoryServicesCOMException:

身份验证机制未知.

解决方法

是.你需要给它一个目录连接字符串.控制台应用程序(以您的身份运行)使用您的凭据运行,包括目录访问. ASP.NET应用程序使用ASPNET用户的凭据运行,这些凭据是运行应用程序的系统的本地凭据,而不是目录全局的凭据.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读