在 C# 中,我如何检查我是否有权写入注册表项?
我正在尝试将值存储在注册表项中:
try
{
using (RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software\Contoso\SQMClient", true))
{
if (key != null)
key.SetValue("UserId", sUserId);
}
}
catch (System.Security.SecurityException e)
{
//Not allowed to set UserId. No biggie.
}
除了OpenSubKey
抛出异常:
System.Security.SecurityException occurred
HResult=-2146233078
Message=Requested registry access is not allowed.
我不想故意抛出异常。在我尝试打开之前如何验证我对注册表项的权限;为了防止抛出异常?
注意:它可能涉及,也可能不涉及key.GetAccessControl(AccessControlSections.Access)
。这也可能是不可能的。