解決VB.NET注冊表權限經驗總結
作者:佚名
文章對VB.NET注冊表權限的講解,對VB.NET注冊表權限增加,細分起來共有11種可選的權限類型,它們對應的參數我們為你一一列出。
大家都知道權限的概念吧,在一個后臺你可能有的權限僅僅就一個,在這里我們來講講關于VB.NET注冊表權限的例子。
本實例需要項目引用:
- Imports Microsoft.Win32 '用途 : 注冊表操作
- Imports System.Security.AccessControl'用途 : 訪問權限控制
首先,對VB.NET注冊表權限增加,細分起來共有11種可選的權限類型,它們對應的參數如下:
- Select Case ComboBox1.Text
- Case "完全控制"
- ObjRegRight = RegistryRights.FullControl
- Case "查詢數值"
- ObjRegRight = RegistryRights.QueryValues
- Case "設置數值"
- ObjRegRight = RegistryRights.SetValue
- Case "創建子項"
- ObjRegRight = RegistryRights.CreateSubKey
- Case "枚舉子項"
- ObjRegRight = RegistryRights.EnumerateSubKeys
- Case "通知"
- ObjRegRight = RegistryRights.Notify
- Case "創建鏈接"
- ObjRegRight = RegistryRights.CreateLink
- Case "刪除"
- ObjRegRight = RegistryRights.Delete
- Case "寫入DAC"
- ObjRegRight = RegistryRights.WriteKey
- Case "寫入所有者"
- ObjRegRight = RegistryRights.TakeOwnership
- Case "讀取控制"
- ObjRegRight = RegistryRights.ReadPermissions
- End Select
而每個細分權限 又分"允許"和"拒絕"兩種訪問控制類型
- Select Case ComboBox2.Text
- Case "允許"
- ObjRegAccess = AccessControlType.Allow
- Case "拒絕"
- ObjRegAccess = AccessControlType.Deny
- End Select
以下為增加VB.NET注冊表權限的函數
以下兩函數中 Account代表系統nt帳戶 Rights和ControlType分別為上文提及的權限類型和訪問控制類型
- Private Sub AddRegistrySecurity(ByVal Str_FileName As String, ByVal Account As String, ByVal Rights As RegistryRights, ByVal ControlType As AccessControlType)
- Dim RegKey As RegistryRegistryKey = Registry.CurrentUser.CreateSubKey("此處填寫具體鍵地址")
- Dim RegkeyAcl As RegistrySecurity = RegKey.GetAccessControl()
- Dim AccessRule As RegistryAccessRule = New RegistryAccessRule(Account, Rights, ControlType)
- RegkeyAcl.AddAccessRule(AccessRule)
- RegKey.SetAccessControl(RegkeyAcl)
- RegKey.Close()
- End Sub
以下為移除注冊表鍵權限的函數
- Private Sub RemoveRegistrySecurity(ByVal Str_FileName As String, ByVal Account As String, ByVal Rights As RegistryRights, ByVal ControlType As AccessControlType)
- Dim RegKey As RegistryRegistryKey = Registry.CurrentUser.CreateSubKey("此處填寫具體鍵地址")
- Dim RegkeyAcl As RegistrySecurity = RegKey.GetAccessControl()
- Dim AccessRule As RegistryAccessRule = New RegistryAccessRule(Account, Rights, ControlType)
- RegkeyAcl.RemoveAccessRule(AccessRule)
- RegKey.SetAccessControl(RegkeyAcl)
- RegKey.Close()
- End Sub
【編輯推薦】
責任編輯:田樹
來源:
樂博網