Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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
C# C语言中的activedirectory查询性能#_C#_Performance_Active Directory - Fatal编程技术网

C# C语言中的activedirectory查询性能#

C# C语言中的activedirectory查询性能#,c#,performance,active-directory,C#,Performance,Active Directory,我正在写一些使用Active Directory的代码。这段代码包含一些函数,这些函数用于从给定帐户名的用户中提取数据,然后获取直接报告和组成员身份(如果需要完整的层次结构,则可以递归或非递归地运行这些数据)。 关于如何做到这一点,我已经看到了一些答案。然而,所有的答案似乎都依赖于可分辨的名称 可分辨名称是否是用于在active directory中关联这些对象的外键(以数据库术语表示)?我的直觉表明,objectGuid将是用于将项目相互关联的键,因为这一点永远不会改变。因此,我假设如果我重写

我正在写一些使用Active Directory的代码。这段代码包含一些函数,这些函数用于从给定帐户名的用户中提取数据,然后获取直接报告和组成员身份(如果需要完整的层次结构,则可以递归或非递归地运行这些数据)。 关于如何做到这一点,我已经看到了一些答案。然而,所有的答案似乎都依赖于可分辨的名称

可分辨名称是否是用于在active directory中关联这些对象的外键(以数据库术语表示)?我的直觉表明,objectGuid将是用于将项目相互关联的键,因为这一点永远不会改变。因此,我假设如果我重写查询以使用objectGuid over DN,性能会更好

  • 是否可以按objectGuid查询包含用户/组的组
  • 是否可以查询给定经理的直接下属的objectGuid(objectGuid)
  • objectGuid查询的性能是否优于其他属性,或者从性能角度来看,DN、sAMAccountName或其他键属性之一是否是最好的键
  • 上述答案是否适用于大多数(所有?)LDAP实现,还是特定于MS AD
提前感谢,

JB


注:与我的大多数问题一样,性能差异可能可以忽略不计;这更多是出于学术兴趣/满足我的好奇心。

如果应用程序存储或缓存Active Directory域服务中存储的对象的标识符或引用,则对象GUID是使用的最佳标识符,原因如下:

  • 对象上的objectGUID属性永远不会更改,即使对象 被重命名或移动
  • 使用对象GUID很容易绑定到对象
  • 如果重命名或移动对象,objectGUID属性将提供 单个标识符,可用于快速查找和识别 对象,而不必组合具有以下条件的查询: 标识该对象的所有属性
另一方面,如果重命名或移动对象,对象的可分辨名称将发生变化,因此可分辨名称不是可靠的对象标识符。
因此,使用objectGUID搜索目录与性能无关,而是与可靠性有关

接下来是你的下一个问题:

是否可以按查询包含用户/组的组 objectGuid

当然可以。检查此项。
希望能有帮助