【问题标题】:DirectoryEntry CommitChanges() is throwing Access Denied errorDirectoryEntry CommitChanges() 抛出拒绝访问错误
【发布时间】:2018-11-13 05:58:09
【问题描述】:

我正在我的项目中处理 Active Directive 角色修改模块,并且在添加/删除用户角色时出现访问被拒绝错误。我是 AD 服务器的管理员。

我注意到下面给出的一种方案。

1:在 AD 中添加的新用户,没有任何角色。

2:为用户应用任何角色 -(获取错误访问被拒绝)

3:如果应用超级用户角色,则角色添加成功。

代码如下

  // Search for role in Adam.
        DirectorySearcher directorySearcher = new DirectorySearcher(GetAdamSdsRoot());
        directorySearcher.Filter = "(&(objectCategory=group)(cn=" + roleName + "))";
        SearchResult searchResult = directorySearcher.FindOne();

        // Remove user from role.
        DirectoryEntry directoryEntry = searchResult.GetDirectoryEntry();
        directoryEntry.Properties["member"].Remove("<SID=" + GetActiveDirectoryUserSid(userName) + ">");
        directoryEntry.CommitChanges();

【问题讨论】:

    标签: c# winforms active-directory


    【解决方案1】:

    首先,这是行不通的:

    directoryEntry.Properties["member"].Remove("<SID=" + GetActiveDirectoryUserSid(userName) + ">");
    

    member 属性是成员的distinguishedName 属性列表,而不是其 SID。所以你需要删除用户的distinguishedName,而不是SID。

    但如果这是唯一的问题,则异常不会是“拒绝访问”。

    我知道你说你是管理员,但你是在你的管理员凭据下运行它吗?

    【讨论】:

    • 是的,我在管理员账户下运行。还注意到下面给出的另一件事。 1:服务器上有9个角色。 2 是父角色,7 是子文件夹角色。如果我分配了父角色,那么它可以工作,如果分配了子角色,则显示错误。 2:如果我分配了父角色并再次更新子角色,则不会拒绝访问 iissue。
    • 您是否已将代码更改为使用用户的distinguishedName 而不是 SID?
    • 是的,我进行了更改,但出现了差异错误:“信息:指定了无效的 dn 语法。”。我的 DN 是 "CN=singh Arunkumar,OU=Consultants,OU=Users,OU=SE,OU=CRFREE,DC=CRFREE,DC=com"/ 代码行:directoryEntry.Properties["member"].Remove("");
    • 您不需要 "
    • 所以在你的情况下:directoryEntry.Properties["member"].Remove(GetActiveDirectoryUserDistinguishedName(userName))
    【解决方案2】:

    我知道这个帖子很旧。但最近我从事与 AD 的 API 集成,以编程方式创建用户并将用户更新到本地 AD(在 Windows Server 2012 R2 上)。

    我遇到了这个问题:访问被拒绝错误。

    在更好地了解 LDAP 连接处理后,我发现以正确的方式进行处理后,我们解决了它。下一篇文章是我对这个场景的基础。一个很好的例子。

    https://ianatkinson.net/computing/adcsharp.htm#ex5(创建用户部分)。

    【讨论】:

      猜你喜欢
      • 2012-01-22
      • 2015-01-02
      • 2014-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-06
      • 2016-11-05
      • 1970-01-01
      相关资源
      最近更新 更多