【发布时间】:2014-12-01 13:54:16
【问题描述】:
我的任务是查找对象 guid 和最终用户。我正在使用 C# 来查找它。在阅读了有关该主题的几篇文章后,我使用 DirectoryEntry 类来查找 AD 用户详细信息。查询 AD 后来自 SearchResult 对象的数据为我提供了 objectguid,但这并不完全是 .net 术语中的 GUID。我必须将其更改为适当的 guid,以便在应用程序中使用它。当我在互联网上搜索关于将 objectguid 转换为 GUID 时,我发现了两种不同的方法,如下所述
第一个:
DirectoryEntry de = searchResult.GetDirectoryEntry();
Guid userGuid = new Guid(de.NativeGuid);
第二个:
Guid userGuid = new Guid((byte[]) searchResult.Properties["objectguid"][0]);
两者都给了我一个 GUID,但它们是不同的。我不明白该考虑哪一个。由于我必须为大约 50000 条记录执行此操作,因此第一种选择会花费我很多时间,这在我的场景中是不可接受的。第二个选项不会花费太多时间,但我不确定以这种方式创建的 GUID 是否正常。
我的问题是
- 我在第二个选项中为 AD 用户获得的用户 guid 是否适合使用?
- 如果第一个选项中的 GUID 是正确的,我有什么方法可以找到更好的方法(相对于它所花费的时间)?
感谢您的宝贵时间。
【问题讨论】:
-
对于第一种情况,获得正确 GUID 的更简单方法是
Guid userGuid = searchResult.GetDirectoryEntry().Guid;但首选第二种方法,因为第一种情况会生成更多 AD 访问权限以绑定DirectoryEntry。
标签: c# active-directory