EventWaitHandleSecurity クラスとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > EventWaitHandleSecurity クラスの意味・解説 

EventWaitHandleSecurity クラス

メモ : このクラスは、.NET Framework version 2.0新しく追加されたものです。

前付システム待機ハンドル適用する Windows アクセス制御セキュリティ表します。このクラス継承できません。

名前空間: System.Security.AccessControl
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public NotInheritable Class
 EventWaitHandleSecurity
    Inherits NativeObjectSecurity
Dim instance As EventWaitHandleSecurity
public sealed class EventWaitHandleSecurity
 : NativeObjectSecurity
public ref class EventWaitHandleSecurity sealed
 : public NativeObjectSecurity
public final class EventWaitHandleSecurity
 extends NativeObjectSecurity
public final class EventWaitHandleSecurity
 extends NativeObjectSecurity
解説解説

EventWaitHandleSecurity オブジェクトは、名前付システム待機ハンドルへのアクセス権、およびアクセス試行監査方法示します待機ハンドルへのアクセス権規則として表現します。各アクセス規則は EventWaitHandleAccessRule オブジェクト表されます。監査規則は EventWaitHandleAuditRule オブジェクト表されます。

このオブジェクトには基になる Windows セキュリティ システム反映されています。Windows セキュリティ システムでは、セキュリティ設定できるオブジェクトごとに、セキュリティ保護されオブジェクトへのアクセス制御する随意アクセス制御リスト (DACL: Discretionary Access Control List) と監査対象アクセス試行指定するシステム アクセス制御リスト (SACL: System Access Control List) をそれぞれ最大 1 つずつ指定できます。DACL と SACL は、ユーザーとグループアクセス監査指定するアクセス制御エントリ (ACE: Access Control Entry) を順序付けして示したリストです。EventWaitHandleAccessRule オブジェクトまたは EventWaitHandleAuditRule オブジェクトは、複数ACE を表す場合あります

メモメモ

EventWaitHandle オブジェクトは、ローカル待機ハンドルまたは名前付システム待機ハンドルを表すことができますWindowsアクセス制御セキュリティは、名前付システム待機ハンドルだけに有効です。

EventWaitHandleSecurityEventWaitHandleAccessRule、およびEventWaitHandleAuditRule の各クラスは、ACLACE実装の詳細隠します。これらのクラス使用すると、ACE17 種類の型を気にせずに、アクセス権継承反映正しく維持する複雑な操作簡単に行うことができますまた、これらのオブジェクトは、次の一般的なアクセス制御エラー防止するようにデザインされています。

.NET セキュリティ オブジェクトサポートされないのは、多くアプリケーション開発者が避け必要がある次のような危険なアクティビティだけです。

前付待機ハンドルWindows アクセス制御セキュリティ変更するには、EventWaitHandle.GetAccessControl メソッド使用して EventWaitHandleSecurity オブジェクト取得します規則追加および削除してセキュリティ オブジェクト変更し、EventWaitHandle.SetAccessControl メソッド使用して再度割り当てます

待機ハンドル間でアクセス制御セキュリティコピーするには、EventWaitHandle.GetAccessControl メソッド使用して最初待機ハンドルアクセス規則監査規則を表す EventWaitHandleSecurity オブジェクト取得し次に EventWaitHandle.SetAccessControl メソッド使用するか、または EventWaitHandleSecurity オブジェクト受け入れコンストラクタ使用して、これらの規則2 番目の待機ハンドル割り当てます

SDDL (Security Descriptor Definition Language) を既に使用しているユーザーは、SetSecurityDescriptorSddlForm メソッド使用して前付待機ハンドルアクセス規則設定し次に GetSecurityDescriptorSddlForm メソッド使用して SDDL 形式アクセス規則を表す文字列を取得できます。ただし、新規開発にはこの方法を使用しないことをお勧めます。

使用例使用例

Allow 規則Deny 規則分離、および互換性のある規則含まれる権限組み合わせを表すコード例次に示します。この例では、EventWaitHandleSecurity オブジェクト作成し現在のユーザーに関する各種権限許可または拒否する規則追加して、それらの規則ペア表示しますまた、この例では、現在のユーザー新し権限許可し結果表示します新し権限は、既存Allow 規則マージされることが示されています。

メモメモ

この例では、セキュリティ オブジェクトEventWaitHandle オブジェクト割り当てられません。セキュリティ オブジェクト割り当て例については、EventWaitHandle.GetAccessControl および EventWaitHandle.SetAccessControlトピック参照してください

Imports System
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
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
 */
継承階層継承階層
System.Object
   System.Security.AccessControl.ObjectSecurity
     System.Security.AccessControl.CommonObjectSecurity
       System.Security.AccessControl.NativeObjectSecurity
        System.Security.AccessControl.EventWaitHandleSecurity
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
EventWaitHandleSecurity メンバ
System.Security.AccessControl 名前空間
EventWaitHandleAccessRule クラス
EventWaitHandleAuditRule クラス
EventWaitHandleRights 列挙
EventWaitHandle.GetAccessControl
EventWaitHandle.SetAccessControl


このページでは「.NET Framework クラス ライブラリ リファレンス」からEventWaitHandleSecurity クラスを検索した結果を表示しています。
Weblioに収録されているすべての辞書からEventWaitHandleSecurity クラスを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からEventWaitHandleSecurity クラス を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「EventWaitHandleSecurity クラス」の関連用語

EventWaitHandleSecurity クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



EventWaitHandleSecurity クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS