我有一种情况,我需要存储一个指向 Active Directory用户帐户的全局唯一标识符。我倾向于Guid因为它比Sid更容易存储。
根据MSDN 条目,如果ContextType设置为“Machine” ,该属性(它是 Nullable)将始终返回 null 。我不需要担心这一点,因为我们的 ContextType 将始终设置为“域”。
我的问题是,如果 ContextType 是“域”,这个属性会返回 null 吗?换句话说,AD DS 商店中的帐户是否总是有一个 Guid?
我有一种情况,我需要存储一个指向 Active Directory用户帐户的全局唯一标识符。我倾向于Guid因为它比Sid更容易存储。
根据MSDN 条目,如果ContextType设置为“Machine” ,该属性(它是 Nullable)将始终返回 null 。我不需要担心这一点,因为我们的 ContextType 将始终设置为“域”。
我的问题是,如果 ContextType 是“域”,这个属性会返回 null 吗?换句话说,AD DS 商店中的帐户是否总是有一个 Guid?
我在回答了一个相关问题后看到了这个,答案是肯定的:每个对象都有一个 GUID,这在
http://msdn.microsoft.com/en-us/library/ms675579.aspx
schemaIDGuid 上的文档说“在创建 classSchema 对象时,如果未指定,Active Directory 服务器会生成此值。如果您创建一个新类,请为每个类生成您自己的 GUID,以便您的扩展的所有安装都使用相同的 schemaIDGUID 来引用该类。”
所以....如果你不创建一个,AD 会为你做的。
我没有明确的答案,但我编写了一个简单的控制台应用程序,它通过我们所有的 Active Directory 用户帐户运行。
至少对我们来说,答案是否定的。只要 ContextType 是“域”,主体将始终有一个 Guid