1
編輯:看來它不起作用。似乎沒有複製一些權限。 這是在Exchange 2010的Active Directory中。在屏幕截圖中,有「RTCUniversalUserReadOnlyGroup」用戶,「權限」列爲空。這些權限根本不會被複制。有小費嗎?通過C#繼承Active Directory權限
我目前不得不以編程方式取消選中「在此目標的父項中包含可繼承權限」複選框。
編輯:不得不把圖像回URL形式:http://i47.tinypic.com/2a8fed5.jpg
我想通實際取消的方式,但是當你通過接口做到這一點,它會詢問您是否要複製當前權限或刪除它們。
我發現的唯一方法是手動列出權限,將它們放入臨時變量中,然後在複選框被移除後重新添加它們。
using (DirectoryEntry entry = new DirectoryEntry(myPath))
{
List<ActiveDirectoryAccessRule> rules = new List<ActiveDirectoryAccessRule>();
foreach (object ruleObject in entry.ObjectSecurity.GetAccessRules(false, true, typeof(SecurityIdentifier)))
{
ActiveDirectoryAccessRule rule = ruleObject as ActiveDirectoryAccessRule;
if (rule.IsInherited)
{
rules.Add(rule);
}
}
foreach (object ruleObject in entry.ObjectSecurity.GetAccessRules(false, true, typeof(NTAccount)))
{
ActiveDirectoryAccessRule rule = ruleObject as ActiveDirectoryAccessRule;
if (rule.IsInherited)
{
rules.Add(rule);
}
}
entry.ObjectSecurity.SetAccessRuleProtection(true, false);
foreach (var rule in rules)
{
entry.ObjectSecurity.AddAccessRule(rule);
}
entry.CommitChanges();
}
我想知道是否有更好的方法來做到這一點,如果我失去了一些東西。它似乎現在工作得很好,但是感覺就像一旦項目部署完成,就會在我的屁股上咬我。
編輯你的問題顯示圖像:) – Shoban