首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查RegistryKey编辑的权限

检查RegistryKey编辑的权限
EN

Stack Overflow用户
提问于 2012-10-08 07:24:15
回答 3查看 1.4K关注 0票数 0

可能重复: Check registry permission without throwing exception

如何更正确地检查RegistryKey编辑的权限?现在我编写这样的代码:

代码语言:javascript
复制
RegistryKey regKey = null;
try {
    regKey = Registry.LocalMachine.OpenSubKey("Software", true);
}
catch (SecurityException ex) {
    Console.WriteLine("SecurityException: {0}", ex.Message);
}
catch (Exception ex) {
    Console.WriteLine("Exception: {0}", ex.Message);
}
if (null == regKey)
    Console.WriteLine("Registry key not exists, or you have not necessary permission for edit it.");
else
    Console.WriteLine("Registry key successfully opened. You have necessary permission for edit it.");

但异常对性能影响很大。我可以不试/不接就检查一下吗?

向你问好,安德烈

EN

回答 3

Stack Overflow用户

发布于 2012-10-08 07:35:01

你查过RegistryPermission类了吗?在任何注册表操作之前,您应该调查您是否实际拥有该权限。类似于:

代码语言:javascript
复制
     try
    {
        var permission = new RegistryPermission(RegistryPermissionAccess.Read, @"PATH\TO\YOUR\KEY");
        permission.Demand();

// your code here


    }
    catch (System.Security.SecurityException ex)
    {
        // Handle exc
    }

但是,在成功的情况下,如果缺少权限,则会出现异常。

票数 0
EN

Stack Overflow用户

发布于 2012-10-08 07:58:22

但异常对性能影响很大。

你描述过了吗?我无法想象,除了一个非常人为的情况,这将是重要的。

票数 0
EN

Stack Overflow用户

发布于 2012-10-08 08:06:55

您应该只在初始化时读取注册表设置。不要在每个方法中读取注册表设置。那么,异常的性能惩罚不应该对整个程序产生明显的影响。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12777068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档