Mega Code Archive

 
Categories / VB.Net Tutorial / Thread
 

Not attach the security object to a Mutex object

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 MutexSecurity()         Dim ruleA As New MutexAccessRule(user,MutexRights.Synchronize Or MutexRights.Modify,AccessControlType.Allow)         mSec.AddAccessRule(ruleA)         Dim rule As New MutexAccessRule(user,MutexRights.ChangePermissions,AccessControlType.Deny)         mSec.AddAccessRule(rule)         ShowSecurity(mSec)         rule = New MutexAccessRule(user, MutexRights.ReadPermissions, AccessControlType.Allow)         mSec.AddAccessRule(rule)         ShowSecurity(mSec)         Console.WriteLine("Use RemoveAccessRuleSpecific on the original rule.")         mSec.RemoveAccessRuleSpecific(ruleA)         ShowSecurity(mSec)         Console.WriteLine("Use RemoveAccessRuleSpecific with the correct rights.")         rule = New MutexAccessRule(user,MutexRights.Synchronize Or MutexRights.Modify Or MutexRights.ReadPermissions, AccessControlType.Allow)         mSec.RemoveAccessRuleSpecific(rule)         ShowSecurity(mSec)     End Sub      Private Shared Sub ShowSecurity(ByVal security As MutexSecurity)         Console.WriteLine("Current access rules:")         For Each ar As MutexAccessRule In security.GetAccessRules(True, True, GetType(NTAccount))             Console.WriteLine("User: {0}", ar.IdentityReference)             Console.WriteLine("Type: {0}", ar.AccessControlType)             Console.WriteLine("Rights: {0}", ar.MutexRights)         Next     End Sub End Class