SemaphoreAccessRuleとは? わかりやすく解説

SemaphoreAccessRule クラス

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

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

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

<ComVisibleAttribute(False)> _
Public NotInheritable Class
 SemaphoreAccessRule
    Inherits AccessRule
Dim instance As SemaphoreAccessRule
[ComVisibleAttribute(false)] 
public sealed class SemaphoreAccessRule : AccessRule
[ComVisibleAttribute(false)] 
public ref class SemaphoreAccessRule sealed
 : public AccessRule
/** @attribute ComVisibleAttribute(false) */ 
public final class SemaphoreAccessRule extends
 AccessRule
ComVisibleAttribute(false) 
public final class SemaphoreAccessRule extends
 AccessRule
解説解説

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

メモメモ

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

前付セマフォに現在適用されている規則の一覧を取得するには、Semaphore.GetAccessControl メソッド使用して SemaphoreSecurity オブジェクト取得し、その GetAccessRules メソッド使用して SemaphoreAccessRule オブジェクトコレクション取得します

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

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

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

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

使用例使用例

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

メモメモ

この例では、セキュリティ オブジェクトSemaphore オブジェクト割り当てられません。セキュリティ オブジェクト割り当て例については、Semaphore.GetAccessControl および Semaphore.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
 SemaphoreSecurity()

        ' Add a rule that grants the current user the 
        ' right to enter or release the semaphore.
        Dim rule As New
 SemaphoreAccessRule(user, _
            SemaphoreRights.Synchronize _
            Or SemaphoreRights.Modify, _
            AccessControlType.Allow)
        mSec.AddAccessRule(rule)

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

        ShowSecurity(mSec)

    End Sub 

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

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

            Console.WriteLine("        User: {0}",
 ar.IdentityReference)
            Console.WriteLine("        Type: {0}",
 ar.AccessControlType)
            Console.WriteLine("      Rights: {0}",
 ar.SemaphoreRights)
            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.
        SemaphoreSecurity mSec = new SemaphoreSecurity();

        // Add a rule that grants the current user the 
        // right to enter or release the semaphore.
        SemaphoreAccessRule rule = new SemaphoreAccessRule(user,
 
            SemaphoreRights.Synchronize | SemaphoreRights.Modify, 
            AccessControlType.Allow);
        mSec.AddAccessRule(rule);

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

        ShowSecurity(mSec);
    }

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

        foreach(SemaphoreAccessRule 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.SemaphoreRights);
            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.SemaphoreAccessRule
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
SemaphoreAccessRule メンバ
System.Security.AccessControl 名前空間
SemaphoreSecurity

SemaphoreAccessRule コンストラクタ (String, SemaphoreRights, AccessControlType)

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

規則適用するユーザーまたはグループの名前、アクセス権、および指定したアクセス権許可するかどうか指定して、SemaphoreAccessRule クラス新しインスタンス初期化します。

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

Public Sub New ( _
    identity As String, _
    eventRights As SemaphoreRights, _
    type As AccessControlType _
)
Dim identity As String
Dim eventRights As SemaphoreRights
Dim type As AccessControlType

Dim instance As New SemaphoreAccessRule(identity,
 eventRights, type)
public SemaphoreAccessRule (
    string identity,
    SemaphoreRights eventRights,
    AccessControlType type
)
public:
SemaphoreAccessRule (
    String^ identity, 
    SemaphoreRights eventRights, 
    AccessControlType type
)
public SemaphoreAccessRule (
    String identity, 
    SemaphoreRights eventRights, 
    AccessControlType type
)
public function SemaphoreAccessRule (
    identity : String, 
    eventRights : SemaphoreRights, 
    type : AccessControlType
)

パラメータ

identity

規則適用対象となるユーザー名またはグループ名。

eventRights

許可されアクセス権または拒否されアクセス権指定する SemaphoreRights 値のビットごとの組み合わせ

type

アクセス権許可されているかどうか指定する AccessControlType 値の 1 つ

例外例外
例外種類条件

ArgumentOutOfRangeException

eventRights無効な値が指定されています。

または

type無効な値が指定されています。

ArgumentNullException

eventRights が 0 です。

ArgumentException

identitynull 参照 (Visual Basic では Nothing) です。

または

identity は、長さ 0 の文字列です。

または

identity512 文字超えてます。

解説解説

WaitOne メソッド呼び出しなどによって Semaphore取得するには、ユーザーに SemaphoreRights.Synchronize アクセス権が必要です。Release メソッド呼び出して取得したセマフォ解放するには、ユーザーに SemaphoreRights.Modify アクセス権が必要です。

このコンストラクタは、identity を System.Security.Principal.NTAccount(String) コンストラクタ渡し新しく作成した NTAccount オブジェクトを SemaphoreAccessRule(IdentityReference,SemaphoreRights,AccessControlType) コンストラクタ渡してNTAccount オブジェクト作成するのと同じ働きをします。

使用例使用例

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

メモメモ

この例では、セキュリティ オブジェクトSemaphore オブジェクト割り当てられません。セキュリティ オブジェクト割り当て例については、Semaphore.GetAccessControl および Semaphore.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
 SemaphoreSecurity()

        ' Add a rule that grants the current user the 
        ' right to enter or release the semaphore.
        Dim rule As New
 SemaphoreAccessRule(user, _
            SemaphoreRights.Synchronize _
            Or SemaphoreRights.Modify, _
            AccessControlType.Allow)
        mSec.AddAccessRule(rule)

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

        ShowSecurity(mSec)

    End Sub 

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

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

            Console.WriteLine("        User: {0}",
 ar.IdentityReference)
            Console.WriteLine("        Type: {0}",
 ar.AccessControlType)
            Console.WriteLine("      Rights: {0}",
 ar.SemaphoreRights)
            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.
        SemaphoreSecurity mSec = new SemaphoreSecurity();

        // Add a rule that grants the current user the 
        // right to enter or release the semaphore.
        SemaphoreAccessRule rule = new SemaphoreAccessRule(user,
 
            SemaphoreRights.Synchronize | SemaphoreRights.Modify, 
            AccessControlType.Allow);
        mSec.AddAccessRule(rule);

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

        ShowSecurity(mSec);
    }

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

        foreach(SemaphoreAccessRule 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.SemaphoreRights);
            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
 */
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
SemaphoreAccessRule クラス
SemaphoreAccessRule メンバ
System.Security.AccessControl 名前空間

SemaphoreAccessRule コンストラクタ (IdentityReference, SemaphoreRights, AccessControlType)

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

規則適用するユーザーまたはグループアクセス権、および指定したアクセス権許可するかどうか指定して、SemaphoreAccessRule クラス新しインスタンス初期化します。

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

Public Sub New ( _
    identity As IdentityReference, _
    eventRights As SemaphoreRights, _
    type As AccessControlType _
)
Dim identity As IdentityReference
Dim eventRights As SemaphoreRights
Dim type As AccessControlType

Dim instance As New SemaphoreAccessRule(identity,
 eventRights, type)
public SemaphoreAccessRule (
    IdentityReference identity,
    SemaphoreRights eventRights,
    AccessControlType type
)
public:
SemaphoreAccessRule (
    IdentityReference^ identity, 
    SemaphoreRights eventRights, 
    AccessControlType type
)
public SemaphoreAccessRule (
    IdentityReference identity, 
    SemaphoreRights eventRights, 
    AccessControlType type
)
public function SemaphoreAccessRule (
    identity : IdentityReference, 
    eventRights : SemaphoreRights, 
    type : AccessControlType
)

パラメータ

identity

規則適用対象となるユーザーまたはグループSecurityIdentifier 型にするか、または SecurityIdentifier 型に変換できる NTAccount などの型にする必要があります

eventRights

許可されアクセス権または拒否されアクセス権指定する SemaphoreRights 値のビットごとの組み合わせ

type

アクセス権許可されているかどうか指定する AccessControlType 値の 1 つ

例外例外
例外種類条件

ArgumentOutOfRangeException

eventRights無効な値が指定されています。

または

type無効な値が指定されています。

ArgumentNullException

identitynull 参照 (Visual Basic では Nothing) です。

または

eventRights が 0 です。

ArgumentException

identitySecurityIdentifierではなくSecurityIdentifier 型に変換できる NTAccount などの型でもありません。

解説解説

WaitOne メソッド呼び出しなどによって Semaphore取得するには、ユーザーに SemaphoreRights.Synchronize アクセス権が必要です。Release メソッド呼び出して取得したセマフォ解放するには、ユーザーに SemaphoreRights.Modify アクセス権が必要です。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
SemaphoreAccessRule クラス
SemaphoreAccessRule メンバ
System.Security.AccessControl 名前空間

SemaphoreAccessRule コンストラクタ

SemaphoreAccessRule クラス新しインスタンス初期化します。
オーバーロードの一覧オーバーロードの一覧

名前 説明
SemaphoreAccessRule (IdentityReference, SemaphoreRights, AccessControlType) 規則適用するユーザーまたはグループアクセス権、および指定したアクセス権許可するかどうか指定してSemaphoreAccessRule クラス新しインスタンス初期化します。
SemaphoreAccessRule (String, SemaphoreRights, AccessControlType) 規則適用するユーザーまたはグループの名前、アクセス権、および指定したアクセス権許可するかどうか指定してSemaphoreAccessRule クラス新しインスタンス初期化します。
参照参照

関連項目

SemaphoreAccessRule クラス
SemaphoreAccessRule メンバ
System.Security.AccessControl 名前空間

SemaphoreAccessRule プロパティ


パブリック プロパティパブリック プロパティ

( プロテクト プロパティ参照)
  名前 説明
パブリック プロパティ AccessControlType  この AccessRule オブジェクト関連付けられている AccessControlType 値を取得します。 ( AccessRule から継承されます。)
パブリック プロパティ IdentityReference  この規則適用する IdentityReference を取得します。 ( AuthorizationRule から継承されます。)
パブリック プロパティ InheritanceFlags  この規則を子オブジェクト継承する方法決定するフラグの値を取得します。 ( AuthorizationRule から継承されます。)
パブリック プロパティ IsInherited  この規則明示的に設定するか、または親コンテナ オブジェクトから継承するかを指定する値を取得します。 ( AuthorizationRule から継承されます。)
パブリック プロパティ PropagationFlags  反映フラグの値を取得します。このフラグから、この規則を子オブジェクト反映させる方法判断します。このプロパティ重要なのは、InheritanceFlags 列挙体の値が None でない場合だけです。 ( AuthorizationRule から継承されます。)
パブリック プロパティ SemaphoreRights アクセス規則許可されアクセス権または拒否されアクセス権取得します
プロテクト プロパティプロテクト プロパティ
  名前 説明
プロテクト プロパティ AccessMask  この規則アクセス マスク取得します。 ( AuthorizationRule から継承されます。)
参照参照

関連項目

SemaphoreAccessRule クラス
System.Security.AccessControl 名前空間
SemaphoreSecurity

SemaphoreAccessRule メソッド


SemaphoreAccessRule メンバ

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

SemaphoreAccessRule データ型公開されるメンバを以下の表に示します


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド SemaphoreAccessRule オーバーロードされます。 SemaphoreAccessRule クラス新しインスタンス初期化します。
パブリック プロパティパブリック プロパティ
( プロテクト プロパティ参照)
  名前 説明
パブリック プロパティ AccessControlType  この AccessRule オブジェクト関連付けられている AccessControlType 値を取得します。(AccessRule から継承されます。)
パブリック プロパティ IdentityReference  この規則適用する IdentityReference を取得します。(AuthorizationRule から継承されます。)
パブリック プロパティ InheritanceFlags  この規則を子オブジェクト継承する方法決定するフラグの値を取得します。(AuthorizationRule から継承されます。)
パブリック プロパティ IsInherited  この規則明示的に設定するか、または親コンテナ オブジェクトから継承するかを指定する値を取得します。(AuthorizationRule から継承されます。)
パブリック プロパティ PropagationFlags  反映フラグの値を取得します。このフラグから、この規則を子オブジェクト反映させる方法判断します。このプロパティ重要なのは、InheritanceFlags 列挙体の値が None でない場合だけです。(AuthorizationRule から継承されます。)
パブリック プロパティ SemaphoreRights アクセス規則許可されアクセス権または拒否されアクセス権取得します
プロテクト プロパティプロテクト プロパティ
  名前 説明
プロテクト プロパティ AccessMask  この規則アクセス マスク取得します。(AuthorizationRule から継承されます。)
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

SemaphoreAccessRule クラス
System.Security.AccessControl 名前空間
SemaphoreSecurity



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

辞書ショートカット

すべての辞書の索引

「SemaphoreAccessRule」の関連用語

SemaphoreAccessRuleのお隣キーワード
検索ランキング

   

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



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

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

©2025 GRAS Group, Inc.RSS