gpt4 book ai didi

c# - C# 中的 Active Directory 查询性能

转载 作者:行者123 更新时间:2023-12-02 19:55:23 26 4
gpt4 key购买 nike

我正在编写一些代码来使用 Active Directory。此代码包含一些函数,用于根据给定的帐户名拉回用户,然后获取直接报告并获取组成员身份(这些可以递归或非递归运行,具体取决于是否需要完整的层次结构)。我已经看到了一些关于如何做到这一点的答案。然而,所有答案似乎都依赖于专有名称。

可分辨名称是用于关联事件目录中这些对象的外键(在数据库术语中)吗?我的直觉表明 objectGuid 将是用于将项目相互关联的关键,因为它永远不会改变。因此,我认为如果我重写查询以使用 objectGuid 而不是 DN,性能会更好。

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

提前致谢,

新山

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

最佳答案

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

  • 对象的 objectGUID 属性永远不会改变,即使该对象已重命名或移动。
  • 使用对象 GUID 可以轻松绑定(bind)到对象。
  • 如果对象被重命名或移动,objectGUID 属性将提供单一标识符可用于快速查找和识别对象,而不必编写具有条件的查询标识该对象的所有属性。

另一方面,如果对象被重命名或移动,则该对象的可分辨名称会发生变化,因此该可分辨名称不是可靠的对象标识符。
因此,这与性能无关,而是与可靠性有关,您应该使用 objectGUID 搜索目录。

接下来的问题:

Is it possible to query for groups containing a user/group by objectGuid?

当然可以。检查这个link .
希望它有帮助!!

关于c# - C# 中的 Active Directory 查询性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12749881/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com