以下是我们manually
如何为注册表项分配权限:
为注册表项分配权限
打开注册表编辑器。单击要为其分配权限的密钥。
在“编辑”菜单上,单击“权限”。
为所选密钥分配访问级别,如下所示:
授予用户读取密钥内容的权限,但不保存 对于读取,在名称权限下对文件所做的任何更改, 选中允许复选框。
授予用户打开,编辑和获取所有权的权限 在完全控制下,在名称权限下选择密钥,然后选择 允许复选框。
要授予用户所选密钥的特殊权限,请单击 高级。
所以我的问题是,是否有可能以编程方式进行?比如,如果我想授予用户完全控制权限的特定子项,我应该如何在C#中编写代码?非常感谢。
答案 0 :(得分:5)
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”
答案 1 :(得分:3)
RegistrySecurity
类在这里也很有用。因此,我们可以编写以下代码以对当前用户的注册表项应用访问规则。
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));
答案 2 :(得分:1)
它是RegSetKeySecurity
API,通过RegistryKey.SetAccessControl
与.NET代码连接,请参阅Using RegSetKeySecurity to avoid registry redirection