更改注册表权限

4
我希望更改注册表键的权限,并将其设置为只读。我该怎么做?
我尝试了以下方法,但并未实现更改:
RegistryPermission rp = new RegistryPermission(
    RegistryPermissionAccess.Read,
    "HKEY_LOCAL_MACHINE\\SOFTWARE\\paci_1\\identity\\ASPNET_SETREG"
);
rp.AddPathList(
    RegistryPermissionAccess.Read,
    "HKEY_LOCAL_MACHINE\\SOFTWARE\\paci_1\\identity\\ASPNET_SETREG"
);

另外,我如何为用户、管理员或所有者等进行操作?

1个回答

3

我认为您需要的类是RegistrySecurity。它在这里有详细文档。

代码应该如下所示:

using(RegistryKey rk =   
    Registry.LocalMachine.OpenSubKey(@"SOFTWARE\paci_1\identity\ASPNET_SETREG") )
{
    string gname = Environment.UserDomainName + @"\" + Environment.UserName;   
    RegistrySecurity rs = new RegistrySecurity();
    rs.AddAccessRule(new RegistryAccessRule(gname, RegistryRights.ReadKey, AccessControlType.Allow));
    rk.SetAccessControl(rs);
}

当然,您需要用您选择的经过领域合格的用户名替换gname

1
请确保在 rk 上调用 Dispose(或将其创建包装在 using 语句中)。 - Cody Gray

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接