EventWaitHandleAccessRule 建構函式
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
初始化 EventWaitHandleAccessRule 類別的新執行個體。
多載
EventWaitHandleAccessRule(IdentityReference, EventWaitHandleRights, AccessControlType) |
初始化 EventWaitHandleAccessRule 類別的新執行個體,指定套用此規則的使用者或群組、存取權限,以及允許還是拒絕指定的存取權限。 |
EventWaitHandleAccessRule(String, EventWaitHandleRights, AccessControlType) |
初始化 EventWaitHandleAccessRule 類別的新執行個體,指定套用此規則的使用者或群組名稱、存取權限,以及允許還是拒絕指定的存取權限。 |
EventWaitHandleAccessRule(IdentityReference, EventWaitHandleRights, AccessControlType)
初始化 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,或是像是可以轉換成型別 NTAccount 的 SecurityIdentifier 的型別。
- eventRights
- EventWaitHandleRights
EventWaitHandleRights 值的位元組合,指定允許或拒絕的權限。
- type
- AccessControlType
其中一個 AccessControlType 值,指定允許還是拒絕權限。
例外狀況
identity
既不是 SecurityIdentifier 型別,也不是可以轉換成 NTAccount 型別的型別 (例如 SecurityIdentifier)。
備註
EventWaitHandle 若要藉由呼叫 WaitOne或 WaitAnyWaitAll 方法) 等候 (,用戶必須具有存取權EventWaitHandleRights.Synchronize。 若要藉由呼叫 Set 方法來發出事件訊號,或藉由呼叫 Reset 方法將事件重設為未簽署的狀態,用戶必須具有 EventWaitHandleRights.Modify 存取權。 若要發出物件的訊 EventWaitHandle 號,然後藉由呼叫 SignalAndWait 方法來等候物件,用戶必須具有 Synchronize 和 Modify 存取權。
適用於
EventWaitHandleAccessRule(String, EventWaitHandleRights, AccessControlType)
初始化 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
為零。
範例
下列程式代碼範例示範如何使用這個建構函式來建立 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 若要藉由呼叫 WaitOne或 WaitAnyWaitAll 方法) 等候 (,用戶必須具有存取權EventWaitHandleRights.Synchronize。 若要藉由呼叫 Set 方法來發出事件訊號,或藉由呼叫 Reset 方法將事件重設為未簽署的狀態,用戶必須具有 EventWaitHandleRights.Modify 存取權。 若要發出物件的訊 EventWaitHandle 號,然後藉由呼叫 SignalAndWait 方法來等候物件,用戶必須具有 Synchronize 和 Modify 存取權。
這個建構函式相當於建立 NTAccount 物件,方法是傳遞 identity
至 NTAccount.NTAccount(String) 建構函式,並將新建立 NTAccount 的對象傳遞至 EventWaitHandleAccessRule(IdentityReference, EventWaitHandleRights, AccessControlType) 建構函式。