RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
解决VB.NET注册表权限经验总结

大家都知道权限的概念吧,在一个后台你可能有的权限仅仅就一个,在这里我们来讲讲关于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  

本文标题:解决VB.NET注册表权限经验总结
文章源于:http://www.jxjierui.cn/article/cdossdp.html