共用方式為


EventWaitHandleAccessRule 建構函式

定義

初始化 EventWaitHandleAccessRule 類別的新執行個體。

多載

EventWaitHandleAccessRule(IdentityReference, EventWaitHandleRights, AccessControlType)

初始化 EventWaitHandleAccessRule 類別的新執行個體,指定套用此規則的使用者或群組、存取權限,以及允許還是拒絕指定的存取權限。

EventWaitHandleAccessRule(String, EventWaitHandleRights, AccessControlType)

初始化 EventWaitHandleAccessRule 類別的新執行個體,指定套用此規則的使用者或群組名稱、存取權限,以及允許還是拒絕指定的存取權限。

EventWaitHandleAccessRule(IdentityReference, EventWaitHandleRights, AccessControlType)

來源:
EventWaitHandleSecurity.cs
來源:
EventWaitHandleSecurity.cs
來源:
EventWaitHandleSecurity.cs
來源:
EventWaitHandleSecurity.cs

初始化 EventWaitHandleAccessRule 類別的新執行個體,指定套用此規則的使用者或群組、存取權限,以及允許還是拒絕指定的存取權限。

public:
 EventWaitHandleAccessRule(System::Security::Principal::IdentityReference ^ identity, System::Security::AccessControl::EventWaitHandleRights eventRights, System::Security::AccessControl::AccessControlType type);
public EventWaitHandleAccessRule (System.Security.Principal.IdentityReference identity, System.Security.AccessControl.EventWaitHandleRights eventRights, System.Security.AccessControl.AccessControlType type);
new System.Security.AccessControl.EventWaitHandleAccessRule : System.Security.Principal.IdentityReference * System.Security.AccessControl.EventWaitHandleRights * System.Security.AccessControl.AccessControlType -> System.Security.AccessControl.EventWaitHandleAccessRule
Public Sub New (identity As IdentityReference, eventRights As EventWaitHandleRights, type As AccessControlType)

參數

identity
IdentityReference

適用這項規則的使用者或群組。 必須是型別 SecurityIdentifier,或是像是可以轉換成型別 NTAccountSecurityIdentifier 的型別。

eventRights
EventWaitHandleRights

EventWaitHandleRights 值的位元組合,指定允許或拒絕的權限。

type
AccessControlType

其中一個 AccessControlType 值,指定允許還是拒絕權限。

例外狀況

eventRights 指定了無效的值。

-或-

type 指定了無效的值。

identitynull

-或-

eventRights 為零。

identity 既不是 SecurityIdentifier 型別,也不是可以轉換成 NTAccount 型別的型別 (例如 SecurityIdentifier)。

備註

EventWaitHandle 若要藉由呼叫 WaitOneWaitAnyWaitAll 方法) 等候 (,用戶必須具有存取權EventWaitHandleRights.Synchronize。 若要藉由呼叫 Set 方法來發出事件訊號,或藉由呼叫 Reset 方法將事件重設為未簽署的狀態,用戶必須具有 EventWaitHandleRights.Modify 存取權。 若要發出物件的訊 EventWaitHandle 號,然後藉由呼叫 SignalAndWait 方法來等候物件,用戶必須具有 SynchronizeModify 存取權。

適用於

EventWaitHandleAccessRule(String, EventWaitHandleRights, AccessControlType)

來源:
EventWaitHandleSecurity.cs
來源:
EventWaitHandleSecurity.cs
來源:
EventWaitHandleSecurity.cs
來源:
EventWaitHandleSecurity.cs

初始化 EventWaitHandleAccessRule 類別的新執行個體,指定套用此規則的使用者或群組名稱、存取權限,以及允許還是拒絕指定的存取權限。

public:
 EventWaitHandleAccessRule(System::String ^ identity, System::Security::AccessControl::EventWaitHandleRights eventRights, System::Security::AccessControl::AccessControlType type);
public EventWaitHandleAccessRule (string identity, System.Security.AccessControl.EventWaitHandleRights eventRights, System.Security.AccessControl.AccessControlType type);
new System.Security.AccessControl.EventWaitHandleAccessRule : string * System.Security.AccessControl.EventWaitHandleRights * System.Security.AccessControl.AccessControlType -> System.Security.AccessControl.EventWaitHandleAccessRule
Public Sub New (identity As String, eventRights As EventWaitHandleRights, type As AccessControlType)

參數

identity
String

套用這個規則的使用者或群組名稱。

eventRights
EventWaitHandleRights

EventWaitHandleRights 值的位元組合,指定允許或拒絕的權限。

type
AccessControlType

其中一個 AccessControlType 值,指定允許還是拒絕權限。

例外狀況

eventRights 指定了無效的值。

-或-

type 指定了無效的值。

eventRights 為零。

identitynull

-或-

identity 是零長度字串

-或-

identity 的長度超過 512 個字元。

範例

下列程式代碼範例示範如何使用這個建構函式來建立 EventWaitHandleAccessRule 物件。 此範例會 EventWaitHandleSecurity 建立 物件、新增規則,以允許和拒絕目前使用者的各種許可權,並顯示產生的規則組。 然後,此範例會允許目前使用者的新許可權,並顯示結果,顯示新許可權會與現有 Allow 規則合併。

注意

這個範例不會將安全性物件附加至 EventWaitHandle 物件。 您可以在和 EventWaitHandle.SetAccessControl中找到EventWaitHandle.GetAccessControl附加安全性物件的範例。

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.
        EventWaitHandleSecurity mSec = new EventWaitHandleSecurity();

        // Add a rule that grants the current user the 
        // right to wait on or signal the event.
        EventWaitHandleAccessRule rule = new EventWaitHandleAccessRule(user, 
            EventWaitHandleRights.Synchronize | EventWaitHandleRights.Modify, 
            AccessControlType.Allow);
        mSec.AddAccessRule(rule);

        // Add a rule that denies the current user the 
        // right to change permissions on the event.
        rule = new EventWaitHandleAccessRule(user, 
            EventWaitHandleRights.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 event. This rule
        // is merged with the existing Allow rule.
        rule = new EventWaitHandleAccessRule(user, 
            EventWaitHandleRights.ReadPermissions, 
            AccessControlType.Allow);
        mSec.AddAccessRule(rule);

        ShowSecurity(mSec);
    }

    private static void ShowSecurity(EventWaitHandleSecurity security)
    {
        Console.WriteLine("\r\nCurrent access rules:\r\n");

        foreach(EventWaitHandleAccessRule 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.EventWaitHandleRights);
            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 EventWaitHandleSecurity()

        ' Add a rule that grants the current user the 
        ' right to wait on or signal the event.
        Dim rule As New EventWaitHandleAccessRule(user, _
            EventWaitHandleRights.Synchronize _
            Or EventWaitHandleRights.Modify, _
            AccessControlType.Allow)
        mSec.AddAccessRule(rule)

        ' Add a rule that denies the current user the 
        ' right to change permissions on the event.
        rule = New EventWaitHandleAccessRule(user, _
            EventWaitHandleRights.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 event. This rule
        ' is merged with the existing Allow rule.
        rule = New EventWaitHandleAccessRule(user, _
            EventWaitHandleRights.ReadPermissions, _
            AccessControlType.Allow)
        mSec.AddAccessRule(rule)

        ShowSecurity(mSec)

    End Sub 

    Private Shared Sub ShowSecurity(ByVal security As EventWaitHandleSecurity)
        Console.WriteLine(vbCrLf & "Current access rules:" & vbCrLf)

        For Each ar As EventWaitHandleAccessRule In _
            security.GetAccessRules(True, True, GetType(NTAccount))

            Console.WriteLine("        User: {0}", ar.IdentityReference)
            Console.WriteLine("        Type: {0}", ar.AccessControlType)
            Console.WriteLine("      Rights: {0}", ar.EventWaitHandleRights)
            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

備註

EventWaitHandle 若要藉由呼叫 WaitOneWaitAnyWaitAll 方法) 等候 (,用戶必須具有存取權EventWaitHandleRights.Synchronize。 若要藉由呼叫 Set 方法來發出事件訊號,或藉由呼叫 Reset 方法將事件重設為未簽署的狀態,用戶必須具有 EventWaitHandleRights.Modify 存取權。 若要發出物件的訊 EventWaitHandle 號,然後藉由呼叫 SignalAndWait 方法來等候物件,用戶必須具有 SynchronizeModify 存取權。

這個建構函式相當於建立 NTAccount 物件,方法是傳遞 identityNTAccount.NTAccount(String) 建構函式,並將新建立 NTAccount 的對象傳遞至 EventWaitHandleAccessRule(IdentityReference, EventWaitHandleRights, AccessControlType) 建構函式。

適用於