[英]With access to Active Directory, can I get an object GUID for a user from an username/email address alone?
[英]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是否很好。
这是我的问题
谢谢你的时间。
从评论中
对于第一种情况,获取正确GUID的一种简单方法是Guid userGuid = searchResult.GetDirectoryEntry()。Guid;。 但是第二种是首选,因为在一种情况下,它将生成更多的AD访问以绑定DirectoryEntry。
它只是两者之间的编码差异(本机与常规),但是值是相同的。 如果可以,请始终避免点击searchResult.GetDirectoryEntry()方法。 从字面上看,它将再次从AD获得完整记录。 您不想选择两个字段,然后在确实只需要两个字段的情况下返回并全部选中它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.