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

MutexAccessRule クラス

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

ユーザーまたはグループ許可されアクセス権セットまたは拒否されアクセス権セット表します。このクラス継承できません。

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

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

MutexAccessRule クラスは、名前付システム ミューテックスに関する Windowsアクセス制御セキュリティ管理するために .NET Framework提供されるクラスセット含まれています。これらのクラス概要、および基になる Windowsアクセス制御構造との関係については、MutexSecurity のトピック参照してください

メモメモ

Windowsアクセス制御セキュリティは、名前付システム ミューテックスだけに有効です。Mutex オブジェクトローカル ミューテックスを表す場合アクセス制御は関係ありません。

前付ミューテックスに現在適用されている規則の一覧を取得するには、Mutex.GetAccessControl メソッド使用して MutexSecurity オブジェクト取得し、その GetAccessRules メソッド使用して MutexAccessRule オブジェクトコレクション取得します

MutexAccessRule オブジェクトは、基になる随意アクセス制御リスト (DACL: Discretionary Access Control List) のアクセス制御エントリ一対一には対応していません。ミューテックスに関するすべてのアクセス規則セット取得する場合、このセットには、すべてのアクセス制御エントリを表すために現在必要な最低限の数の規則だけが含まれます。

MutexAccessRule オブジェクト使用してユーザーまたはグループ許可するアクセス権または拒否するアクセス権指定しますMutexAccessRule オブジェクトは、許可されアクセス権または拒否されアクセス権どちらか一方表します両方を表すことはありません。

前付システム ミューテックス規則適用するには、Mutex.GetAccessControl メソッド使用して MutexSecurity オブジェクト取得します規則追加するメソッド使用して MutexSecurity オブジェクト変更し、Mutex.SetAccessControl メソッド使用してセキュリティ オブジェクト再度割り当てます

MutexAccessRule オブジェクト変更不可です。ミューテックスセキュリティは、規則追加または削除する MutexSecurity クラスメソッド使用して変更します。この操作によって、基になるアクセス制御エントリ変更されます。

使用例使用例

MutexAccessRule オブジェクト作成して使用するコード例次に示します。この例では、MutexSecurity オブジェクト作成し現在のユーザーに関する各種権限許可または拒否する規則追加して、それらの規則ペア表示しますまた、この例では、現在のユーザー新し権限許可し結果表示します新し権限は、既存Allow 規則マージされることが示されています。

メモメモ

この例では、セキュリティ オブジェクトMutex オブジェクト割り当てられません。セキュリティ オブジェクト割り当て例については、Mutex.GetAccessControl および Mutex.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
 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
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
 */
継承階層継承階層
System.Object
   System.Security.AccessControl.AuthorizationRule
     System.Security.AccessControl.AccessRule
      System.Security.AccessControl.MutexAccessRule
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
MutexAccessRule メンバ
System.Security.AccessControl 名前空間
MutexSecurity


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

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

辞書ショートカット

すべての辞書の索引

「MutexAccessRule クラス」の関連用語

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

   

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



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

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

©2025 GRAS Group, Inc.RSS