首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将新权限(ACL)分配给现有注册表项而不从父级继承权限

如何将新权限(ACL)分配给现有注册表项而不从父级继承权限
EN

Stack Overflow用户
提问于 2014-07-10 12:39:34
回答 1查看 569关注 0票数 0

可以使用RegistryKey.SetAccessControl(new RegistrySecurity(...))设置新权限。但在那之后,inheritance is turned on

是否有一种在不打开继承的情况下转让新权利的方法?

整个守则:

代码语言:javascript
复制
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-Server:使用C#设置SetACL权限和阻止继承

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-10 12:52:53

使用SetAccessRuleProtection保护DACL不受继承。

代码语言:javascript
复制
regSecurity.SetAccessRuleProtection(true, false);
  • http://msdn.microsoft.com/en-us/library/vstudio/system.security.accesscontrol.objectsecurity.setaccessruleprotection(v=vs.100).aspx
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24676812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档