【问题标题】:How to check OU accessability in C # , DirectoryEntry?如何在 C#、DirectoryEntry 中检查 OU 的可访问性?
【发布时间】:2017-09-10 07:58:14
【问题描述】:

我正在使用 DirectoryEntry 类

尝试从特定 OU 和子 OU 读取所有用户。

以下代码是任务的一部分

using(DirectoryEntry dEntry = new DirectoryEntry(dn))
using(DirectorySearcher dSearcher = new  DirectorySearcher(dEntry))
{
     dSearcher.SearchScope = SearchScope.Subtree;
     dSearcher.Filter = "(&(objectClass=user) (objectCategory=person))";
     foreach(SearchResult in dSearcher.FindAll())
     {
        //Do something...
     }
}

某些子 OU 受到保护,当前用户无法读取。 我得到了任务异常“一个或多个错误” 我正在寻找方法来检查 OU 是否不可访问并跳过它。并将该 OU 写入日志。 我试过以下:

 public void GetOu(List<MyUser> list, string path)
 {
     using (DirectoryEntry dEntry = new     DirectoryEntry(path))
     using(DirectorySearcher dSearcher = new DirectorySearcher(dEntry))
     {
           dSearcher.SearcherScope = SearchScope.Subtree;
           dSearcher.Filter = "(objectClass=organizationalUnit)";
           foreach(SearchResult result in dSearcher.FindAll())
           {
               GetUsersFromOU(list,result.GetDirectoryEntry());
            }
       }
 }
public void GetUsersFromOU(List<MyUser> list,DirectoryEntry ou)
{
     using (DirectorySearcher dSearcher = new DirectorySearcher(ou);
     dSearcher.SearchScope = SearchScope.OneLevel;
     dSearcher.Filter = "(&(objectClass=user)(objectCategory=person))";
     foreach (Search result in dSearcher.FindAll())
      {
          //Do something.... update list...
      }
 }

现在没有异常并跳过不可访问的 OU。 1.但还是找不到“坏欧”是什么 2.运行时间是灾难性的……

【问题讨论】:

  • 无法访问是什么意思?你的意思是不存在?

标签: c# active-directory directoryentry


【解决方案1】:

您必须确保运行该进程的用户具有执行查找的适当权限。这将是您在桌面应用程序中的 Windows 帐户和在 ASP.NET 应用程序中运行应用程序池的帐户。

【讨论】:

  • 这就是重点,我不能确定运行应用程序的用户是否具有特定 OU 的权限。所以我需要收集“拒绝访问”。我需要知道用户是否可以访问 OU 的方法。用户由 IIS 定义。
  • 如果您使用 AD(通过 C#),您肯定应该使用管理员帐户吗?
  • 这个问题可能对你有帮助:stackoverflow.com/questions/2810613/…
  • 如果您使用 AD(通过 C#),您肯定应该使用管理员帐户吗?这是一个伟大的愿望,但不是我的现实。
  • 谢谢,这个链接很有帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-07
  • 1970-01-01
  • 1970-01-01
  • 2016-12-05
  • 2014-11-03
  • 1970-01-01
相关资源
最近更新 更多