MutexRights Enum
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Anger de behörigheter för åtkomstkontroll som kan tillämpas på namngivna system mutex-objekt.
Den här uppräkningen stöder en bitvis kombination av dess medlemsvärden.
public enum class MutexRights
[System.Flags]
public enum MutexRights
[<System.Flags>]
type MutexRights =
Public Enum MutexRights
- Arv
- Attribut
Fält
| Name | Värde | Description |
|---|---|---|
| Modify | 1 | Rätten att släppa en namngiven mutex. |
| Delete | 65536 | Rätten att ta bort en namngiven mutex. |
| ReadPermissions | 131072 | Rätten att öppna och kopiera åtkomstregler och granskningsregler för en namngiven mutex. |
| ChangePermissions | 262144 | Rätten att ändra säkerhets- och granskningsregler som är associerade med en namngiven mutex. |
| TakeOwnership | 524288 | Rätten att ändra ägaren till en namngiven mutex. |
| Synchronize | 1048576 | Rätten att vänta på en namngiven mutex. |
| FullControl | 2031617 | Rätten att utöva fullständig kontroll över en namngiven mutex och att ändra dess åtkomstregler och granskningsregler. |
Exempel
I följande kodexempel visas användningen av MutexRights värden när du skapar och använder MutexAccessRule objekt. Exemplet skapar ett MutexSecurity objekt, lägger till regler som tillåter och nekar olika rättigheter för den aktuella användaren och visar det resulterande regelparet. Exemplet tillåter sedan nya rättigheter för den aktuella användaren och visar resultatet, vilket visar att de nya rättigheterna slås samman med den befintliga AccessControlType.Allow regeln.
Note
Det här exemplet kopplar inte säkerhetsobjektet till ett Mutex objekt. Se MutexSecurity, Mutex.GetAccessControl -metoden och Mutex.SetAccessControl.
using System;
using System.Threading;
using System.Security.AccessControl;
using System.Security.Principal;
public class Example
{
public static void Main()
{
// Create a string representing the current user.
string user = Environment.UserDomainName + "\\" +
Environment.UserName;
// Create a security object that grants no access.
MutexSecurity mSec = new MutexSecurity();
// Add a rule that grants the current user the
// right to enter or release the mutex.
MutexAccessRule rule = new MutexAccessRule(user,
MutexRights.Synchronize | MutexRights.Modify,
AccessControlType.Allow);
mSec.AddAccessRule(rule);
// Add a rule that denies the current user the
// right to change permissions on the mutex.
rule = new MutexAccessRule(user,
MutexRights.ChangePermissions,
AccessControlType.Deny);
mSec.AddAccessRule(rule);
// Display the rules in the security object.
ShowSecurity(mSec);
// Add a rule that allows the current user the
// right to read permissions on the mutex. This rule
// is merged with the existing Allow rule.
rule = new MutexAccessRule(user,
MutexRights.ReadPermissions,
AccessControlType.Allow);
mSec.AddAccessRule(rule);
ShowSecurity(mSec);
}
private static void ShowSecurity(MutexSecurity security)
{
Console.WriteLine("\r\nCurrent access rules:\r\n");
foreach(MutexAccessRule ar in
security.GetAccessRules(true, true, typeof(NTAccount)))
{
Console.WriteLine(" User: {0}", ar.IdentityReference);
Console.WriteLine(" Type: {0}", ar.AccessControlType);
Console.WriteLine(" Rights: {0}", ar.MutexRights);
Console.WriteLine();
}
}
}
/*This code example produces output similar to following:
Current access rules:
User: TestDomain\TestUser
Type: Deny
Rights: ChangePermissions
User: TestDomain\TestUser
Type: Allow
Rights: Modify, Synchronize
Current access rules:
User: TestDomain\TestUser
Type: Deny
Rights: ChangePermissions
User: TestDomain\TestUser
Type: Allow
Rights: Modify, ReadPermissions, Synchronize
*/
Imports System.Threading
Imports System.Security.AccessControl
Imports System.Security.Principal
Public Class Example
Public Shared Sub Main()
' Create a string representing the current user.
Dim user As String = Environment.UserDomainName _
& "\" & Environment.UserName
' Create a security object that grants no access.
Dim mSec As New MutexSecurity()
' Add a rule that grants the current user the
' right to enter or release the mutex.
Dim rule As New MutexAccessRule(user, _
MutexRights.Synchronize _
Or MutexRights.Modify, _
AccessControlType.Allow)
mSec.AddAccessRule(rule)
' Add a rule that denies the current user the
' right to change permissions on the mutex.
rule = New MutexAccessRule(user, _
MutexRights.ChangePermissions, _
AccessControlType.Deny)
mSec.AddAccessRule(rule)
' Display the rules in the security object.
ShowSecurity(mSec)
' Add a rule that allows the current user the
' right to read permissions on the mutex. This rule
' is merged with the existing Allow rule.
rule = New MutexAccessRule(user, _
MutexRights.ReadPermissions, _
AccessControlType.Allow)
mSec.AddAccessRule(rule)
ShowSecurity(mSec)
End Sub
Private Shared Sub ShowSecurity(ByVal security As MutexSecurity)
Console.WriteLine(vbCrLf & "Current access rules:" & vbCrLf)
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)
Console.WriteLine()
Next
End Sub
End Class
'This code example produces output similar to following:
'
'Current access rules:
'
' User: TestDomain\TestUser
' Type: Deny
' Rights: ChangePermissions
'
' User: TestDomain\TestUser
' Type: Allow
' Rights: Modify, Synchronize
'
'
'Current access rules:
'
' User: TestDomain\TestUser
' Type: Deny
' Rights: ChangePermissions
'
' User: TestDomain\TestUser
' Type: Allow
' Rights: Modify, ReadPermissions, Synchronize
Kommentarer
Note
Den här typen stöds bara på Windows.
MutexRights Använd uppräkningen för att ange behörigheter för åtkomstkontroll när du skapar MutexSecurity objekt. Använd objekt med konstruktorn och metoden för att tillämpa åtkomsträttigheter på en namngiven Mutex(Boolean, String, Boolean, MutexSecurity)Mutex.SetAccessControl system mutexMutexSecurity.