0
我需要在Active Directory中創建聯繫人。我有一個擴展UserPrincipal的類。我如何使用它來創建新的聯繫人?下面的代碼拋出PrincipalOperationException「請求的操作不滿足與對象的類關聯的一個或多個約束」。例外。如何通過擴展UserPrincipal類在Active Directory中創建聯繫人?
[DirectoryObjectClass("contact")]
[DirectoryRdnPrefix("CN")]
internal class MyContact : UserPrincipal
{
public MyContact(PrincipalContext context)
:base(context)
{
}
}
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, "domain",
"OU=Unit1,DC=domain,DC=com", "login", "pass"))
{
using (MyContact principal = new MyContact(pc))
{
principal.Name = "Cnt1";
principal.Save();
}
}
我在做什麼錯?
自定義UserPrincipal有DirectoryObjectClass,您可以在其中指定AD類。我能夠創建派生自UserPrincipal的類,搜索,讀取和更新聯繫人以及特定於聯繫人的所有AD屬性。一切都很完美。所以我認爲這應該是可能的。我唯一無法理解的是如何使用UserPrincipal創建新聯繫人。我想有一些屬性特定於聯繫人,可能是缺少的或是額外的,我需要從UserPrincipal以某種方式刪除它。 – 2015-02-11 05:38:15
我認爲它只適用於表示安全主體的類。聯繫人不是安全主體(沒有SID,SAM帳戶名),它也沒有許多用戶支持的屬性(例如userAccountControl)。如果底層的Principal類嘗試訪問相關信息,則可能會導致問題。無論如何,如果你從未碰過任何與安全主管或用戶相關的屬性,可能會起作用。但我高度懷疑這一點。 – baldpate 2015-02-11 07:11:53