| 网站首页 | VB.Net实例分析 | .Net技术文摘 | 下载中心 | VB.Net书籍笔记 | .Net源码 | VBS脚本与组件调用 | Windows2008技术文摘 | 给我们留言 | 
最新公告:

  没有公告

您现在的位置: 乐博网 >> VB.Net实例分析 >> 安全编程 >> 实例分析正文
最新推荐 更多内容
RegistrySecurity.RemoveAccessRuleAll方法的实例
RegistrySecurity.RemoveAccessRuleAll方法的实例
作者:佚名    来源:乐博网收集     更新时间:2007-11-3

下面的代码示例演示 RemoveAccessRuleAll 方法如何移除具有匹配用户和 AccessControlType 的所有规则,其中将忽略权限和标志。

  1. Option Explicit   
  2. Imports System   
  3. Imports System.Security.AccessControl   
  4. Imports System.Security.Principal   
  5. Imports System.Security   
  6. Imports Microsoft.Win32   
  7.   
  8. Public Class Example   
  9.   
  10.     Public Shared Sub Main()   
  11.   
  12.         Dim user As String = Environment.UserDomainName _    
  13.             & "\" & Environment.UserName  
  14.         ' Create a security object that grants no access.  
  15.         Dim mSec As New RegistrySecurity()  
  16.         ' Add a rule that grants the current user the right  
  17.         ' to read and enumerate the name/value pairs in a key,   
  18.         ' to read its access and audit rules, to enumerate  
  19.         ' its subkeys, to create subkeys, and to delete the key.   
  20.         ' The rule is inherited by all contained subkeys.  
  21.         '  
  22.         Dim rule As New RegistryAccessRule(user, _  
  23.             RegistryRights.ReadKey Or RegistryRights.WriteKey _  
  24.                 Or RegistryRights.Delete, _  
  25.             InheritanceFlags.ContainerInherit, _  
  26.             PropagationFlags.None, _  
  27.             AccessControlType.Allow)  
  28.         mSec.AddAccessRule(rule)  
  29.         ' Add a rule that allows the current user the right  
  30.         ' right to set the name/value pairs in a key.   
  31.         ' This rule is inherited by contained subkeys, but  
  32.         ' propagation flags limit it to immediate child   
  33.         ' subkeys.  
  34.         rule = New RegistryAccessRule(user, _  
  35.             RegistryRights.ChangePermissions, _  
  36.             InheritanceFlags.ContainerInherit, _  
  37.             PropagationFlags.InheritOnly Or PropagationFlags.NoPropagateInherit, _  
  38.             AccessControlType.Allow)  
  39.         mSec.AddAccessRule(rule)  
  40.         ' Add a rule that denies the current user the right  
  41.         ' to set the name/value pairs in a key. This rule  
  42.         ' has no inheritance or propagation flags, so it   
  43.         ' affects only the key itself.  
  44.         rule = New RegistryAccessRule(user, _  
  45.             RegistryRights.SetValue, _  
  46.             AccessControlType.Deny)  
  47.         mSec.AddAccessRule(rule)  
  48.         ' Display the rules in the security object.  
  49.         ShowSecurity(mSec)  
  50.         ' Create a rule that allows the current user the   
  51.         ' right to change the ownership of the key, with  
  52.         ' no inheritance or propagation flags. The rights  
  53.         ' and flags are ignored by RemoveAccessRuleAll,  
  54.         ' and all rules that allow access for the current  
  55.         ' user are removed.  
  56.         rule = New RegistryAccessRule(user, _  
  57.             RegistryRights.TakeOwnership, _  
  58.             AccessControlType.Allow)  
  59.         mSec.RemoveAccessRuleAll(rule)  
  60.         ' Show that all rules that allow access have been   
  61.         ' removed.  
  62.         ShowSecurity(mSec)  
  63.     End Sub   
  64.     Private Shared Sub ShowSecurity(ByVal security As RegistrySecurity)  
  65.         Console.WriteLine(vbCrLf & "Current access rules:" & vbCrLf)  
  66.         For Each ar As RegistryAccessRule In _  
  67.             security.GetAccessRules(True, True, GetType(NTAccount))  
  68.             Console.WriteLine("        User: {0}", ar.IdentityReference)  
  69.             Console.WriteLine("        Type: {0}", ar.AccessControlType)  
  70.             Console.WriteLine("      Rights: {0}", ar.RegistryRights)  
  71.             Console.WriteLine(" Inheritance: {0}", ar.InheritanceFlags)  
  72.             Console.WriteLine(" Propagation: {0}", ar.PropagationFlags)  
  73.             Console.WriteLine("   Inherited? {0}", ar.IsInherited)   
  74.             Console.WriteLine()   
  75.         Next  
  76.   
  77.     End Sub  
  78. End Class    
  79.   
  80. 'This code example produces output similar to following:   
  81. '   
  82. 'Current access rules:   
  83. '   
  84. '        User: TestDomain\TestUser   
  85. '        Type: Deny   
  86. '      Rights: SetValue   
  87. ' Inheritance: None   
  88. ' Propagation: None   
  89. '   Inherited? False   
  90. '   
  91. '        User: TestDomain\TestUser   
  92. '        Type: Allow   
  93. '      Rights: SetValue, CreateSubKey, Delete, ReadKey   
  94. ' Inheritance: ContainerInherit   
  95. ' Propagation: None   
  96. '   Inherited? False   
  97. '   
  98. '        User: TestDomain\TestUser   
  99. '        Type: Allow   
  100. '      Rights: ChangePermissions   
  101. ' Inheritance: ContainerInherit   
  102. ' Propagation: NoPropagateInherit, InheritOnly   
  103. '   Inherited? False   
  104. '   
  105. '   
  106. 'Current access rules:   
  107. '   
  108. '        User: TestDomain\TestUser   
  109. '        Type: Deny   
  110. '      Rights: SetValue   
  111. ' Inheritance: None   
  112. ' Propagation: None   
  113. '   Inherited? False   
  114. '  
  • 上一篇:

  • 下一篇:
  • 【字体: 】【打印此文】【关闭窗口
      相关文章:(只显示最新16条)
    没有相关实例分析

    | 设为首页 | 加入收藏 | 联系站长 | | 友情链接 | 版权申明 |
    乐博网欢迎各种媒体转载我们的原创作品[转载请注明出处];我们鼓励更多VB.Net开发者一起加入研究与探讨;如发现文章访问错误、内容错误或版权疑问、内容有违相关法律(如涉及政治、色情、反动或散布虚假有害信息)等情况,请及时向我们举报,我们将及时纠正!
    联系邮箱:Shiny#vip.qq.com (#替换为@) QQ交流群: 40797788 [闽ICP备05014267号]