我正在尝试在注册表项上设置以下权限。但是在尝试时我收到NullReferenceException错误。作为一个新手制作这个凝灰岩。抛出权限(这总是困扰我),我很难过。有人能告诉我为什么我得到这个吗?感谢。
using System;
using Microsoft.Win32;
using System.Security.AccessControl;
namespace ConsoleApplication7
{
class Program
{
static void Main(string[] args)
{
RegistrySecurity rs = new RegistrySecurity();
string user = "Everyone";
RegistryKey rk = Registry.LocalMachine.OpenSubKey(@"\SOFTWARE\Wow6432Node\123Test", true);
rs.AddAccessRule(new RegistryAccessRule(user,
RegistryRights.FullControl | RegistryRights.TakeOwnership,
InheritanceFlags.ContainerInherit,
PropagationFlags.None,
AccessControlType.Allow));
rk.SetAccessControl(rs);
}
}
}
答案 0 :(得分:1)
答案 1 :(得分:1)
很可能nullReference异常位于RegistryKey rk
本身。
您的应用程序是作为32位还是64位应用程序运行的?您不需要指定Wow6432Node部分,只能引用@"\SOFTWARE\123Test
答案 2 :(得分:1)
此行导致错误
RegistryKey rk = Registry.LocalMachine.OpenSubKey(@"\SOFTWARE\Wow6432Node\123Test", true);
在此处放置一个调试器,看它是否有值或是否为null。如果为null,则检查该路径是否有效。如果它有效,请按照这样做
RegistryKey rk = Registry.LocalMachine.OpenSubKey(@"\\SOFTWARE\\Wow6432Node\\123Test", true);