C# C语言中的activedirectory查询性能#
我正在写一些使用Active Directory的代码。这段代码包含一些函数,这些函数用于从给定帐户名的用户中提取数据,然后获取直接报告和组成员身份(如果需要完整的层次结构,则可以递归或非递归地运行这些数据)。 关于如何做到这一点,我已经看到了一些答案。然而,所有的答案似乎都依赖于可分辨的名称 可分辨名称是否是用于在active directory中关联这些对象的外键(以数据库术语表示)?我的直觉表明,objectGuid将是用于将项目相互关联的键,因为这一点永远不会改变。因此,我假设如果我重写查询以使用objectGuid over DN,性能会更好C# C语言中的activedirectory查询性能#,c#,performance,active-directory,C#,Performance,Active Directory,我正在写一些使用Active Directory的代码。这段代码包含一些函数,这些函数用于从给定帐户名的用户中提取数据,然后获取直接报告和组成员身份(如果需要完整的层次结构,则可以递归或非递归地运行这些数据)。 关于如何做到这一点,我已经看到了一些答案。然而,所有的答案似乎都依赖于可分辨的名称 可分辨名称是否是用于在active directory中关联这些对象的外键(以数据库术语表示)?我的直觉表明,objectGuid将是用于将项目相互关联的键,因为这一点永远不会改变。因此,我假设如果我重写
- 是否可以按objectGuid查询包含用户/组的组
- 是否可以查询给定经理的直接下属的objectGuid(objectGuid)
- objectGuid查询的性能是否优于其他属性,或者从性能角度来看,DN、sAMAccountName或其他键属性之一是否是最好的键
- 上述答案是否适用于大多数(所有?)LDAP实现,还是特定于MS AD
注:与我的大多数问题一样,性能差异可能可以忽略不计;这更多是出于学术兴趣/满足我的好奇心。如果应用程序存储或缓存Active Directory域服务中存储的对象的标识符或引用,则对象GUID是使用的最佳标识符,原因如下:
- 对象上的objectGUID属性永远不会更改,即使对象 被重命名或移动
- 使用对象GUID很容易绑定到对象
- 如果重命名或移动对象,objectGUID属性将提供 单个标识符,可用于快速查找和识别 对象,而不必组合具有以下条件的查询: 标识该对象的所有属性
因此,使用objectGUID搜索目录与性能无关,而是与可靠性有关 接下来是你的下一个问题: 是否可以按查询包含用户/组的组 objectGuid 当然可以。检查此项。
希望能有帮助