Mega Code Archive
Separation between Allow rules and Deny rules, and shows the combination of rights in compatible rules
Imports System
Imports System.Threading
Imports System.Security.AccessControl
Imports System.Security.Principal
Public Class Example
Public Shared Sub Main()
Dim user As String = Environment.UserDomainName & "\" & Environment.UserName
Dim mSec As New SemaphoreSecurity()
Dim rule As New SemaphoreAccessRule(user,SemaphoreRights.Synchronize Or SemaphoreRights.Modify,AccessControlType.Allow)
mSec.AddAccessRule(rule)
rule = New SemaphoreAccessRule(user,SemaphoreRights.ChangePermissions,AccessControlType.Deny)
mSec.AddAccessRule(rule)
ShowSecurity(mSec)
rule = New SemaphoreAccessRule(user,SemaphoreRights.ReadPermissions,AccessControlType.Allow)
mSec.AddAccessRule(rule)
ShowSecurity(mSec)
End Sub
Private Shared Sub ShowSecurity(ByVal security As SemaphoreSecurity)
For Each ar As SemaphoreAccessRule In security.GetAccessRules(True, True, GetType(NTAccount))
Console.WriteLine(" User: {0}", ar.IdentityReference)
Console.WriteLine(" Type: {0}", ar.AccessControlType)
Console.WriteLine(" Rights: {0}", ar.SemaphoreRights)
Next
End Sub
End Class