Registry SetAccessControl

时间:2012-07-16 22:51:17

标签: c# .net security registry

string user = @"NT AUTHORITY\NETWORK SERVICE";
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\services\eventlog");
RegistrySecurity regSec = new RegistrySecurity();
RegistryAccessRule rule = new RegistryAccessRule(
                user,
                RegistryRights.FullControl,
                InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
                PropagationFlags.InheritOnly,
                AccessControlType.Allow);
regSec.AddAccessRule(rule);

key.SetAccessControl(regSec);

我收到System.Unauthorizedaccessexception:“无法写入注册表项。”在key.SetAccessControl(regSec);

我正在以管理员身份运行该应用。

1 个答案:

答案 0 :(得分:0)

我认为默认情况下,网络服务帐户没有对注册表的写入权限。

请参阅http://msdn.microsoft.com/en-us/library/ff647402.aspx#paght000015_registryaccess

该应用程序是否以管理员身份运行时,该异常可能无关。