2010-04-28 63 views
0

我有一種情況,我需要存儲指向Active Directory 用戶帳戶的全局唯一標識符。我傾向於Guid,因爲它比Sid更容易存儲。System.DirectoryServices.AccountManagement.Principal是否有空GUID?

根據MSDN entry,如果ContextType設置爲「機器」,屬性(它是可空的)將始終返回null。我不需要擔心這一點,因爲我們的ContextType將始終設置爲「域」。

我的問題是,如果ContextType是「域」,該屬性是否會返回null?換句話說,一個AD DS店裏的賬戶總是有Guid?

+0

我已經對我們的Active Directory做了一些測試,並且從我所看到的每個對象都有一個Guid。我不知道的是,如果情況總是如此,由於我們有一些配置,如果它取決於您的AD版本等等。 – Josh 2010-05-07 20:49:12

回答

0

我沒有明確的答案,但我編寫了一個簡單的控制檯應用程序,它貫穿了我們所有的Active Directory用戶帳戶。

對我們來說,至少答案是否定的。校長將始終有一個GUID,只要ContextType是「域」

1

我看到這個回答一個相關的問題後,得到的答覆是肯定的:每個對象將有一個GUID,這是在

概述

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

其中有關schemaIDGuid的文檔說:「在創建classSchema對象時,如果未指定Active Directory服務器,則會生成此值如果創建新類,請爲每個類生成自己的GUID,以便所有您的擴展的安裝使用相同的schemaIDGUID來引用該類。「

所以....如果你不創建一個,AD會爲你做。