繁体   English   中英

用户的AD对象GUID

[英]Object GUID from AD for a user

我有一个任务来查找对象guid和最终用户。 我正在使用C#查找它。 在阅读了有关该主题的几篇文章之后,我使用DirectoryEntry类找出了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是否很好。

这是我的问题

  1. 用户guid我在AD用户的第二个选项中可以使用吗?
  2. 如果第一个选项的GUID正确,那么有什么办法可以我找到一种更好的方式(相对于所花费的时间)?

谢谢你的时间。

从评论中
对于第一种情况,获取正确GUID的一种简单方法是Guid userGuid = searchResult.GetDirectoryEntry()。Guid;。 但是第二种是首选,因为在一种情况下,它将生成更多的AD访问以绑定DirectoryEntry。

它只是两者之间的编码差异(本机与常规),但是值是相同的。 如果可以,请始终避免点击searchResult.GetDirectoryEntry()方法。 从字面上看,它将再次从AD获得完整记录。 您不想选择两个字段,然后在确实只需要两个字段的情况下返回并全部选中它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM