解决VB.NET注册表权限经验总结

开发 后端
文章对VB.NET注册表权限的讲解,对VB.NET注册表权限增加,细分起来共有11种可选的权限类型,它们对应的参数我们为你一一列出。

大家都知道权限的概念吧,在一个后台你可能有的权限仅仅就一个,在这里我们来讲讲关于VB.NET注册表权限的例子。

本实例需要项目引用:

  1. Imports Microsoft.Win32  '用途 : 注册表操作  
  2. Imports System.Security.AccessControl'用途 : 访问权限控制  

首先,对VB.NET注册表权限增加,细分起来共有11种可选的权限类型,它们对应的参数如下:

  1. Select Case ComboBox1.Text  
  2. Case "完全控制"  
  3. ObjRegRight = RegistryRights.FullControl  
  4. Case "查询数值"  
  5. ObjRegRight = RegistryRights.QueryValues  
  6. Case "设置数值"  
  7. ObjRegRight = RegistryRights.SetValue  
  8. Case "创建子项"  
  9. ObjRegRight = RegistryRights.CreateSubKey  
  10. Case "枚举子项"  
  11. ObjRegRight = RegistryRights.EnumerateSubKeys  
  12. Case "通知"  
  13. ObjRegRight = RegistryRights.Notify  
  14. Case "创建链接"  
  15. ObjRegRight = RegistryRights.CreateLink  
  16. Case "删除"  
  17. ObjRegRight = RegistryRights.Delete   
  18. Case "写入DAC"  
  19. ObjRegRight = RegistryRights.WriteKey  
  20. Case "写入所有者"  
  21. ObjRegRight = RegistryRights.TakeOwnership  
  22. Case "读取控制"  
  23. ObjRegRight = RegistryRights.ReadPermissions  
  24. End Select 

而每个细分权限 又分"允许"和"拒绝"两种访问控制类型

  1. Select Case ComboBox2.Text  
  2. Case "允许"  
  3. ObjRegAccess = AccessControlType.Allow  
  4. Case "拒绝"  
  5. ObjRegAccess = AccessControlType.Deny  
  6. End Select 

以下为增加VB.NET注册表权限的函数

以下两函数中 Account代表系统nt帐户  Rights和ControlType分别为上文提及的权限类型和访问控制类型

  1. Private Sub AddRegistrySecurity(ByVal Str_FileName As String, ByVal Account As String, ByVal Rights As RegistryRights, ByVal ControlType As AccessControlType)  
  2. Dim RegKey As RegistryRegistryKey = Registry.CurrentUser.CreateSubKey("此处填写具体键地址")  
  3. Dim RegkeyAcl As RegistrySecurity = RegKey.GetAccessControl()  
  4. Dim AccessRule As RegistryAccessRule = New RegistryAccessRule(Account, Rights, ControlType)  
  5. RegkeyAcl.AddAccessRule(AccessRule)  
  6. RegKey.SetAccessControl(RegkeyAcl)  
  7. RegKey.Close()  
  8. End Sub 


以下为移除注册表键权限的函数

  1. Private Sub RemoveRegistrySecurity(ByVal Str_FileName As String, ByVal Account As String, ByVal Rights As RegistryRights, ByVal ControlType As AccessControlType)  
  2. Dim RegKey As RegistryRegistryKey = Registry.CurrentUser.CreateSubKey("此处填写具体键地址")  
  3. Dim RegkeyAcl As RegistrySecurity = RegKey.GetAccessControl()  
  4. Dim AccessRule As RegistryAccessRule = New RegistryAccessRule(Account, Rights, ControlType)  
  5. RegkeyAcl.RemoveAccessRule(AccessRule)  
  6. RegKey.SetAccessControl(RegkeyAcl)  
  7. RegKey.Close()  
  8. End Sub  

【编辑推荐】

  1. 介绍VB.NET绘图方法的三个方面
  2. 你是否了解VB.NET集成开发环境
  3. 简单谈论VB.NET传输表空间
  4. 浅析VB.NET语言与VB语言对比
  5. 五大类VB.NET运算符全面介绍
责任编辑:田树 来源: 乐博网
相关推荐

2009-10-14 09:29:43

VB.NET加密

2009-10-15 17:57:33

VB.NET List

2009-10-15 13:06:12

VB.NET Shar

2010-01-21 14:49:44

VB.NET操作Wor

2009-10-16 18:01:06

VB.NET调用Win

2009-10-12 16:08:14

VB.NET访问注册表

2009-10-16 09:40:54

VB.NET访问注册表

2010-01-11 18:40:03

VB.NET操作注册表

2010-01-20 15:01:26

VB.NET组件显示时

2010-01-15 18:50:25

VB.NET资源文件

2009-10-16 13:30:51

VB.NET水晶报表控

2010-01-19 18:52:08

VB.NET处理数据行

2010-01-14 11:09:35

VB.NET文本框

2010-01-14 16:14:15

VB.NET界面设计

2010-01-12 16:44:53

VB.NET数组

2010-01-08 10:09:50

VB.NET注册表操作

2009-11-10 17:31:38

VB.NET注册表

2010-01-08 14:27:28

VB.NET属性生成器

2009-10-26 14:50:18

VB.NET遍历注册表

2010-01-18 13:57:38

VB.NET读写注册表
点赞
收藏

51CTO技术栈公众号