以编程方式将权限分配给注册表子项
本文关键字:注册表 分配 权限 编程 方式 | 更新日期: 2023-09-27 18:12:33
以下是manually
如何为注册表项分配权限:
为注册表项分配权限
-
打开注册表编辑器。单击要分配权限的键
-
在编辑菜单中,单击权限。
-
为所选密钥指定访问级别:
-
允许用户读取密钥内容,但不能保存在Read的权限下,对文件的任何更改,
-
授予用户打开、编辑和获取文件所有权的权限选择键,在权限下的名称,完全控制,选择
-
单击,授予用户所选密钥的特殊权限先进。
所以我的问题是,是否有可能通过编程来实现?比如说,如果我想授予Users 对特定子键的完全控制权限,我应该如何用c#编写代码?非常感谢。
Microsoft.Win32.RegistryKey key;
key = Microsoft.Win32.Registry.LocalMachine;
RegistrySecurity rs = new RegistrySecurity();
rs = key.GetAccessControl();
string currentUserStr = Environment.UserDomainName + "''" + Environment.UserName;
rs.AddAccessRule(
new RegistryAccessRule(
currentUserStr,
RegistryRights.WriteKey
| RegistryRights.ReadKey
| RegistryRights.Delete
| RegistryRights.FullControl,
AccessControlType.Allow));
将指定用户的访问权限分配给注册表项'key'
RegistrySecurity
class在这里也很有用。因此,我们可以编写以下代码,对当前用户的注册表项应用访问规则。
RegistrySecurity rs = new RegistrySecurity(); // it is right string for this code
string currentUserStr = Environment.UserDomainName + "''" + Environment.UserName;
rs.AddAccessRule(new RegistryAccessRule(currentUserStr, RegistryRights.WriteKey | RegistryRights.ReadKey | RegistryRights.Delete | RegistryRights.FullControl, AccessControlType.Allow));
这是关于RegSetKeySecurity
API,它是通过RegistryKey.SetAccessControl
从。net代码接口,参见使用RegSetKeySecurity来避免注册表重定向