簡體   English   中英

如何在不繼承父項權限的情況下向現有注冊表項分配新權限(ACL)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM