EventWaitHandleSecurity.RemoveAccessRuleSpecific メソッド
アセンブリ: mscorlib (mscorlib.dll 内)

Dim instance As EventWaitHandleSecurity Dim rule As EventWaitHandleAccessRule instance.RemoveAccessRuleSpecific(rule)


規則は、rule と完全に一致した場合にのみ削除されます。フラグも含め、すべての詳細情報が一致していることが必要です。同じユーザーと同じ AccessControlType が指定された他の規則は影響を受けません。
![]() |
---|
1 つの規則は、基礎となる 1 つ以上のアクセス制御エントリ (ACE) を表します。これらのエントリは、ユーザーのアクセス セキュリティ規則を変更するときに、必要に応じて分割または結合されます。そのため、規則の形式が、その規則の追加時の形式から変更されていることがあります。その場合は、RemoveAccessRuleSpecific メソッドでその規則を削除することはできません。 |

RemoveAccessRuleSpecific メソッドで規則を削除するには正確に一致する規則が必要であり、権限を許可および拒否する規則が互いに独立していることを表すコード例を次に示します。
この例では、EventWaitHandleSecurity オブジェクトを作成し、現在のユーザーに関する各種の権限を許可または拒否する規則を追加して、それらの追加の規則を Allow アクセス規則にマージします。また、この例では、元の Allow 規則を RemoveAccessRuleSpecific メソッドに渡し、何も削除されていないことを示す結果を表示します。さらに、この例では、EventWaitHandleSecurity オブジェクト内の Allow 規則に一致する規則を構築し、RemoveAccessRuleSpecific メソッドを使用してこの規則を削除します。
![]() |
---|
この例では、セキュリティ オブジェクトが 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 ruleA As New EventWaitHandleAccessRule(user, _ EventWaitHandleRights.Synchronize _ Or EventWaitHandleRights.Modify, _ AccessControlType.Allow) mSec.AddAccessRule(ruleA) ' Add a rule that denies the current user the ' right to change permissions on the event. Dim rule As 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) ' Attempt to remove the original rule (granting ' the right to wait on or signal the event) with ' RemoveAccessRuleSpecific. The removal fails, ' because the right to read the permissions on the ' event has been added to the rule, so that it no ' longer matches the original rule. Console.WriteLine("Attempt to use RemoveAccessRuleSpecific on the original rule.") mSec.RemoveAccessRuleSpecific(ruleA) ShowSecurity(mSec) ' Create a rule that grants the current user ' the right to wait on or signal the event, and ' to read permissions. Use this rule to remove ' the Allow rule for the current user. Console.WriteLine("Use RemoveAccessRuleSpecific with the correct rights.") rule = New EventWaitHandleAccessRule(user, _ EventWaitHandleRights.Synchronize _ Or EventWaitHandleRights.Modify _ Or EventWaitHandleRights.ReadPermissions, _ AccessControlType.Allow) mSec.RemoveAccessRuleSpecific(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 ' 'Attempt to use RemoveAccessRuleSpecific on the original rule. ' 'Current access rules: ' ' User: TestDomain\TestUser ' Type: Deny ' Rights: ChangePermissions ' ' User: TestDomain\TestUser ' Type: Allow ' Rights: Modify, ReadPermissions, Synchronize ' 'Use RemoveAccessRuleSpecific with the correct rights. ' 'Current access rules: ' ' User: TestDomain\TestUser ' Type: Deny ' Rights: ChangePermissions
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 ruleA = new EventWaitHandleAccessRule(user, EventWaitHandleRights.Synchronize | EventWaitHandleRights.Modify, AccessControlType.Allow); mSec.AddAccessRule(ruleA); // Add a rule that denies the current user the // right to change permissions on the event. EventWaitHandleAccessRule 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); // Attempt to remove the original rule (granting // the right to wait on or signal the event) with // RemoveAccessRuleSpecific. The removal fails, // because the right to read the permissions on the // event has been added to the rule, so that it no // longer matches the original rule. Console.WriteLine("Attempt to use RemoveAccessRuleSpecific on the original rule."); mSec.RemoveAccessRuleSpecific(ruleA); ShowSecurity(mSec); // Create a rule that grants the current user // the right to wait on or signal the event, and // to read permissions. Use this rule to remove // the Allow rule for the current user. Console.WriteLine("Use RemoveAccessRuleSpecific with the correct rights."); rule = new EventWaitHandleAccessRule(user, EventWaitHandleRights.Synchronize | EventWaitHandleRights.Modify | EventWaitHandleRights.ReadPermissions, AccessControlType.Allow); mSec.RemoveAccessRuleSpecific(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 Attempt to use RemoveAccessRuleSpecific on the original rule. Current access rules: User: TestDomain\TestUser Type: Deny Rights: ChangePermissions User: TestDomain\TestUser Type: Allow Rights: Modify, ReadPermissions, Synchronize Use RemoveAccessRuleSpecific with the correct rights. Current access rules: User: TestDomain\TestUser Type: Deny Rights: ChangePermissions */

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からEventWaitHandleSecurity.RemoveAccessRuleSpecific メソッドを検索する場合は、下記のリンクをクリックしてください。

- EventWaitHandleSecurity.RemoveAccessRuleSpecific メソッドのページへのリンク