![](/img/trans.png)
[英]how to get registry key without having administrator rights in windows 7 OS
[英]How to assign new rights (ACL) to existing registry key without inheriting rights from parent
可以使用RegistryKey.SetAccessControl(new RegistrySecurity(...))
設置新權限。 但是之后inheritance is turned on
。
有沒有一種方法可以在不打開繼承的情況下分配新權限?
整個代碼:
void test
{
SecurityIdentifier sidAccUser = new SecurityIdentifier(WellKnownSidType.BuiltinUsersSid, null);
NTAccount ntAccUser = sidAccUser.Translate(typeof(NTAccount)) as NTAccount;
RegistryAccessRule regAcRule = new RegistryAccessRule(
ntAccUser
, RegistryRights.FullControl
, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit
, PropagationFlags.None
, AccessControlType.Allow);
RegistrySecurity regSecurity = new RegistrySecurity();
regSecurity.AddAccessRule(regAcRule);
RegistryKey regKey = Registry.CurrentUser.OpenSubKey(@"ZZTEST", true);
// after that the inheritance is turned on
regKey.SetAccessControl(regSecurity);
}
我找到了此解決方案,但不想使用COM服務器: 使用SetACL設置權限並阻止從C#繼承
使用SetAccessRuleProtection
保護DACL免受繼承。
regSecurity.SetAccessRuleProtection(true, false);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.