【问题标题】:Does a System.DirectoryServices.AccountManagement.Principal ever have a null GUID?System.DirectoryServices.AccountManagement.Principal 是否曾经有空 GUID?
【发布时间】:2010-04-28 14:44:13
【问题描述】:

我需要存储一个指向 Active Directory 用户 帐户的全局唯一标识符。我倾向于Guid,因为它比Sid 更容易存储。

根据MSDN entry,如果ContextType 设置为“机器”,属性(它是一个Nullable)将始终返回null。我不需要担心这一点,因为我们的 ContextType 将始终设置为“域”。

我的问题是,如果 ContextType 是“域”,这个属性会返回 null 吗?换句话说,AD DS 商店中的帐户是否总是有 Guid?

【问题讨论】:

  • 我对我们的 Active Directory 进行了一些测试,据我所知,每个对象都有一个 Guid。我不知道是不是总是这样,因为我们有一些配置,是否取决于您的 AD 版本等。

标签: c# active-directory principal directoryservices


【解决方案1】:

我在回答一个相关问题后看到了这个,答案是肯定的:每个对象都有一个 GUID,这在

中有概述

http://msdn.microsoft.com/en-us/library/ms675579.aspx

关于 schemaIDGuid 的文档说“在创建 classSchema 对象时,如果未指定,Active Directory 服务器会生成此值。如果您创建一个新类,请为每个类生成您自己的 GUID,以便您的所有安装扩展使用相同的 schemaIDGUID 来引用该类。”

所以....如果您不创建一个,AD 会为您完成。

【讨论】:

    【解决方案2】:

    我没有明确的答案,但我编写了一个简单的控制台应用程序,它可以通过我们所有的 Active Directory 用户帐户运行。

    至少对我们来说,答案是否定的。只要 ContextType 为“Domain”,Principal 将始终有一个 Guid

    【讨论】:

      猜你喜欢
      • 2013-07-13
      • 2015-11-12
      • 2012-08-20
      • 1970-01-01
      • 1970-01-01
      • 2020-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多