0

在 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)。这也可能是不可能的。

4

0 回答 0