System.DirectoryServices.AccountManagement.Principal是否具有空GUID?

时间:2010-04-28 14:44:14

标签: c# active-directory principal directoryservices

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

根据MSDN entry,如果ContextType设置为“Machine”,则属性(可以为Nullable)将始终返回null。我不需要担心这个,因为我们的ContextType将始终设置为“Domain。”

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

2 个答案:

答案 0 :(得分:1)

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

中概述

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

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

所以....如果你不创造一个,AD会为你做。

答案 1 :(得分:0)

我没有明确的答案,但我写了一个简单的控制台应用程序,它贯穿了我们所有的Active Directory用户帐户。

对我们来说,至少答案是否定的。只要ContextType是“域”

,Principal将始终具有Guid