通过 WinNT 提供程序查询时,DirectoryEntry 中的 NativeGuid 是什么?
我正在编写一个应用程序,我想与 Active Directory 以及本地用户和组一起使用。 我认为我可以使用 DirectoryEntry 的 NativeGuid 属性作为唯一标识符,该标识符是使用 WinNT 提供程序针对 LocalHost 检索的。 但是,在 LinqPad 中使用以下代码,我为两个条目获得相同的 NativeGuid。 使用 LDAP 提供程序查询 Active Directory 似乎会产生独特的结果,但现在我不确定。
System.DirectoryServices.DirectoryEntry localuserde =
new System.DirectoryServices.DirectoryEntry("WinNT://localhost/localuser");
localuserde.NativeGuid.Dump("localUser Guid");
System.DirectoryServices.DirectoryEntry adminde =
new System.DirectoryServices.DirectoryEntry("WinNT://localhost/administrator");
adminde.NativeGuid.Dump("administrator Guid");
有人可以解释一下使用 WinNT 提供程序时 NativeGuid 代表什么吗?是否有一个好的替代 uniqueId 或者 SID 是更好的选择?
要在 LinqPad 中运行上述内容,请按 F4 并将 System.DirectoryServices.dll 添加到程序集列表中。 然后确保 localuser 存在或将名称更改为系统上的本地用户。 然后按 F5。
谢谢,
Shane Holder
I'm writing an application which I want to work with both Active Directory and local users and groups. I thought I could use the NativeGuid property of a DirectoryEntry as a unique identifier which was retrieved using the WinNT provider against LocalHost. However, using the following code in LinqPad I get the same NativeGuid for both entries. Querying Active Dirctory with the LDAP provider appears to yield unique results, but now I'm unsure.
System.DirectoryServices.DirectoryEntry localuserde =
new System.DirectoryServices.DirectoryEntry("WinNT://localhost/localuser");
localuserde.NativeGuid.Dump("localUser Guid");
System.DirectoryServices.DirectoryEntry adminde =
new System.DirectoryServices.DirectoryEntry("WinNT://localhost/administrator");
adminde.NativeGuid.Dump("administrator Guid");
Can someone please explain what the NativeGuid represents when using the WinNT provider, and is there a good alternative for a uniqueId or is the SID a better choice?
To run the above in LinqPad hit F4 and add System.DirectoryServices.dll to the list of assemblies. Then make sure that localuser either exists or change the name to a local user on the system. Then hit F5.
Thanks,
Shane Holder
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我认为 SID 可能是这里任何与用户和组相关的场景中的最佳选择。 实际上没有其他唯一标识符 - 尤其是 WinNT 提供程序。
有关 WinNT 与 LDAP 讨论的详细信息,以及有关各自属性的重要参考 Excel 表要了解真正暴露的提供商(及其名称),请访问 Richard Mueller 的 Hilltop Lab。 Richard 是一位 ADSI MVP,为任何对 Active Directory 和 LDAP 感兴趣的人提供了精彩的内容。
马克
I would think the SID is probably your best bet in any user- and group-related scenario here. There's really no other unique identifier - especially not with the WinNT provider.
For more info on the WinNT vs. LDAP discussion and for great reference Excel sheets on what properties each of those providers really expose (and what their names are), visit Richard Mueller's Hilltop Lab. Richard is an ADSI MVP and has excellent contents for anyone interested in Active Directory and LDAP.
Marc
这个其他问题说不要使用 NativeGuid。 我会使用“SID”来代替。
This other question says not to use NativeGuid. I would use the "SID" instead.