RegistrySecurity クラス
アセンブリ: mscorlib (mscorlib.dll 内)


RegistrySecurity オブジェクトは、レジストリ キーへのアクセス権、およびアクセス試行の監査方法を示します。レジストリ キーへのアクセス権は規則として表現します。各アクセス規則は RegistryAccessRule オブジェクトで表されます。各監査規則は RegistryAuditRule オブジェクトで表されます。
このオブジェクトには基になる Windows セキュリティ システムが反映されています。Windows セキュリティ システムでは、セキュリティ設定できるオブジェクトごとに、セキュリティで保護されたオブジェクトへのアクセスを制御する随意アクセス制御リスト (DACL: Discretionary Access Control List) と監査対象のアクセス試行を指定するシステム アクセス制御リスト (SACL: System Access Control List) をそれぞれ最大 1 つずつ指定できます。DACL と SACL は、ユーザーとグループのアクセスと監査を指定するアクセス制御エントリ (ACE: Access Control Entry) を順序付けして示したリストです。RegistryAccessRule オブジェクトまたは RegistryAuditRule オブジェクトは、複数の ACE を表す場合があります。
![]() |
---|
Windows のアクセス制御セキュリティは、レジストリ キーだけに適用できます。キーに格納されている個別のキー/値ペアに適用することはできません。 |
RegistrySecurity、RegistryAccessRule、およびRegistryAuditRule の各クラスは、ACL と ACE の実装の詳細を隠します。これらのクラスを使用すると、ACE の 17 種類の型を気にせずに、アクセス権の継承と反映を正しく維持する複雑な操作を簡単に行うことができます。また、これらのオブジェクトは、次の一般的なアクセス制御エラーを防止するようにデザインされています。
-
DACL が null のセキュリティ記述子の作成。DACL への null 参照を使用すると、どのユーザーでもオブジェクトにアクセス規則を追加できるようになるため、サービス拒否攻撃が作成されることがあります。新しい RegistrySecurity オブジェクトの作成時には、すべてのユーザーのすべてのアクセスを拒否する空の DACL が必ず作成されます。
-
ACE の標準順序違反。DACL の ACE リストに標準の順序が適用されていない場合、セキュリティで保護されたオブジェクトへのアクセスが誤ってユーザーに許可されることがあります。たとえば、拒否するアクセス権は許可するアクセス権よりも必ず前にある必要があります。RegistrySecurity オブジェクトは、正しい順序を内部的に維持します。
-
継承された ACE の操作。継承と反映は、アクセス規則と監査規則に加えた変更に応じてリソース マネージャによって処理されます。
.NET セキュリティ オブジェクトでサポートされないのは、多くのアプリケーション開発者が避ける必要がある次のような危険なアクティビティだけです。
レジストリ キーの Windows アクセス制御セキュリティを変更するには、RegistryKey.GetAccessControl メソッドを使用して RegistrySecurity オブジェクトを取得します。規則を追加および削除してセキュリティ オブジェクトを変更し、RegistryKey.SetAccessControl メソッドを使用して再度割り当てます。
![]() |
---|
RegistrySecurity オブジェクトに加えた変更は、RegistryKey.SetAccessControl メソッドを呼び出して、変更したセキュリティ オブジェクトをレジストリ キーに割り当てるまで、レジストリ キーのアクセス レベルに影響しません。 |
レジストリ キー間でアクセス制御セキュリティをコピーするには、RegistryKey.GetAccessControl メソッドを使用して、最初のレジストリ キーのアクセス規則と監査規則を表す RegistrySecurity オブジェクトを取得し、次に RegistryKey.SetAccessControl メソッドを使用するか、または RegistrySecurity オブジェクトを受け入れるコンストラクタを使用して、これらの規則を 2 番目のレジストリ キーに割り当てます。
SDDL (Security Descriptor Definition Language) を既に使用しているユーザーは、SetSecurityDescriptorSddlForm メソッドを使用してレジストリ キーのアクセス規則を設定し、次に GetSecurityDescriptorSddlForm メソッドを使用して SDDL 形式のアクセス規則を表す文字列を取得できます。ただし、新規の開発にはこの方法を使用しないことをお勧めします。

このセクションには、2 つのコード例が含まれています。最初の例は、互換性のある規則を追加および削除するときにこれらの規則がどのようにマージされるかを示しています。2 つ目の例は、継承フラグと反映フラグが規則の追加と削除にどのように影響するかを示しています。
RemoveAccessRule メソッドで互換性のある規則から権限を削除する方法と、AddAccessRule メソッドで互換性のある規則に権限をマージする方法を表したコード例を次に示します。
この例では、RegistrySecurity オブジェクトを作成し、現在のユーザーに RegistryRights.ReadKey 権限を許可する規則を追加します。さらに、この例では、最初の規則と同じ継承権限と反映権限を使用してユーザーに RegistryRights.SetValue を許可する規則を作成し、RemoveAccessRule メソッドを使用してこの新しい規則を RegistrySecurity オブジェクトから削除します。SetValue は、ReadKey の構成要素です。そのため、互換性のある規則から削除されます。RegistrySecurity オブジェクト内の規則が表示され、ReadKey の残りの構成要素が表示されます。
次に、このプログラム例では、AddAccessRule メソッドを呼び出して SetValue 権限を RegistrySecurity オブジェクト内の規則にマージして戻します。
![]() |
---|
この例では、セキュリティ オブジェクトが RegistryKey オブジェクトに割り当てられません。このセクションの 2 つ目の例では、セキュリティ オブジェクトを割り当てます。Microsoft.Win32.RegistryKey.GetAccessControl および RegistryKey.SetAccessControl 内の例も同様です。 |
Option Explicit Imports System Imports System.Security.AccessControl Imports System.Security.Principal Imports System.Security Imports Microsoft.Win32 Public Class Example Public Shared Sub Main() Dim user As String = Environment.UserDomainName _ & "\" & Environment.UserName ' Create a security object that grants no access. Dim mSec As New RegistrySecurity() ' Add a rule that grants the current user ReadKey ' rights. ReadKey is a combination of four other ' rights. The rule is inherited by all ' contained subkeys. Dim rule As New RegistryAccessRule(user, _ RegistryRights.ReadKey, _ InheritanceFlags.ContainerInherit, _ PropagationFlags.None, _ AccessControlType.Allow) mSec.AddAccessRule(rule) ' Create a rule that allows the current user only the ' right to query the key/value pairs of a key, using ' the same inheritance and propagation flags as the ' first rule. QueryValues is a constituent of ' ReadKey, so when this rule is removed, using the ' RemoveAccessRule method, ReadKey is broken into ' its constituent parts. rule = New RegistryAccessRule(user, _ RegistryRights.QueryValues, _ InheritanceFlags.ContainerInherit, _ PropagationFlags.None, _ AccessControlType.Allow) mSec.RemoveAccessRule(rule) ' Display the rules in the security object. ShowSecurity(mSec) ' Add the second rule back. It merges with the ' existing rule, so that the rule is now displayed ' as ReadKey. mSec.AddAccessRule(rule) ' Display the rules in the security object. ShowSecurity(mSec) End Sub Private Shared Sub ShowSecurity(ByVal security As RegistrySecurity) Console.WriteLine(vbCrLf & "Current access rules:" & vbCrLf) For Each ar As RegistryAccessRule In _ security.GetAccessRules(True, True, GetType(NTAccount)) Console.WriteLine(" User: {0}", ar.IdentityReference) Console.WriteLine(" Type: {0}", ar.AccessControlType) Console.WriteLine(" Rights: {0}", ar.RegistryRights) Console.WriteLine(" Inheritance: {0}", ar.InheritanceFlags) Console.WriteLine(" Propagation: {0}", ar.PropagationFlags) Console.WriteLine(" Inherited? {0}", ar.IsInherited) Console.WriteLine() Next End Sub End Class 'This code example produces output similar to following: ' 'Current access rules: ' ' User: TestDomain\TestUser ' Type: Allow ' Rights: EnumerateSubKeys, Notify, ReadPermissions ' Inheritance: ContainerInherit ' Propagation: None ' Inherited? False ' ' 'Current access rules: ' ' User: TestDomain\TestUser ' Type: Allow ' Rights: ReadKey ' Inheritance: ContainerInherit ' Propagation: None ' Inherited? False '
using System; using System.Security.AccessControl; using System.Security.Principal; using System.Security; using Microsoft.Win32; public class Example { public static void Main() { string user = Environment.UserDomainName + "\\" + Environment.UserName; // Create a security object that grants no access. RegistrySecurity mSec = new RegistrySecurity(); // Add a rule that grants the current user ReadKey // rights. ReadKey is a combination of four other // rights. The rule is inherited by all // contained subkeys. RegistryAccessRule rule = new RegistryAccessRule(user, RegistryRights.ReadKey, InheritanceFlags.ContainerInherit, PropagationFlags.None, AccessControlType.Allow); mSec.AddAccessRule(rule); // Create a rule that allows the current user only the // right to query the key/value pairs of a key, using // the same inheritance and propagation flags as the // first rule. QueryValues is a constituent of // ReadKey, so when this rule is removed, using the // RemoveAccessRule method, ReadKey is broken into // its constituent parts. rule = new RegistryAccessRule(user, RegistryRights.QueryValues, InheritanceFlags.ContainerInherit, PropagationFlags.None, AccessControlType.Allow); mSec.RemoveAccessRule(rule); // Display the rules in the security object. ShowSecurity(mSec); // Add the second rule back. It merges with the // existing rule, so that the rule is now displayed // as ReadKey. mSec.AddAccessRule(rule); // Display the rules in the security object. ShowSecurity(mSec); } private static void ShowSecurity(RegistrySecurity security) { Console.WriteLine("\r\nCurrent access rules:\r\n"); foreach( RegistryAccessRule 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.RegistryRights); Console.WriteLine(" Inheritance: {0}", ar.InheritanceFlags); Console.WriteLine(" Propagation: {0}", ar.PropagationFlags); Console.WriteLine(" Inherited? {0}", ar.IsInherited); Console.WriteLine(); } } } /* This code example produces output similar to following: Current access rules: User: TestDomain\TestUser Type: Allow Rights: EnumerateSubKeys, Notify, ReadPermissions Inheritance: ContainerInherit Propagation: None Inherited? False Current access rules: User: TestDomain\TestUser Type: Allow Rights: ReadKey Inheritance: ContainerInherit Propagation: None Inherited? False */
継承と反映を行うアクセス規則のコード例を次に示します。この例では、RegistrySecurity オブジェクトを作成し、ContainerInherit フラグを持つ 2 つの規則を作成して追加します。最初の規則には、反映フラグがありません。2 番目の規則には、NoPropagateInherit と InheritOnly が存在します。
このプログラムでは、RegistrySecurity オブジェクト内の規則を表示し、RegistrySecurity オブジェクトを使用してサブキーを作成します。さらに、子サブキーと孫サブキーを作成し、各サブキーのセキュリティを表示します。最後に、テスト キーを削除します。
Option Explicit Imports System Imports System.Security.AccessControl Imports System.Security.Principal Imports System.Security Imports Microsoft.Win32 Public Class Example Public Shared Sub Main() Const TestKey As String = "TestKey3927" Dim cu As RegistryKey = Registry.CurrentUser Dim user As String = Environment.UserDomainName _ & "\" & Environment.UserName ' Create a security object that grants no access. Dim mSec As New RegistrySecurity() ' Add a rule that grants the current user the right ' to read and enumerate the name/value pairs in a key, ' to read its access and audit rules, to enumerate ' its subkeys, to create subkeys, and to delete the key. ' The rule is inherited by all contained subkeys. ' Dim rule As New RegistryAccessRule(user, _ RegistryRights.ReadKey Or RegistryRights.WriteKey _ Or RegistryRights.Delete, _ InheritanceFlags.ContainerInherit, _ PropagationFlags.None, _ AccessControlType.Allow) mSec.AddAccessRule(rule) ' Add a rule that allows the current user the right ' right to set the name/value pairs in a key. ' This rule is inherited by contained subkeys, but ' propagation flags limit it to immediate child ' subkeys. rule = New RegistryAccessRule(user, _ RegistryRights.ChangePermissions, _ InheritanceFlags.ContainerInherit, _ PropagationFlags.InheritOnly Or PropagationFlags.NoPropagateInherit, _ AccessControlType.Allow) mSec.AddAccessRule(rule) ' Display the rules in the security object. ShowSecurity(mSec) ' Create the test key using the security object. ' Dim rk As RegistryKey = cu.CreateSubKey(TestKey, _ RegistryKeyPermissionCheck.ReadWriteSubTree, _ mSec) ' Create a child subkey and a grandchild subkey, ' without security. Dim rkChild As RegistryKey= rk.CreateSubKey("ChildKey", _ RegistryKeyPermissionCheck.ReadWriteSubTree) Dim rkGrandChild As RegistryKey = _ rkChild.CreateSubKey("GrandChildKey", _ RegistryKeyPermissionCheck.ReadWriteSubTree) Show(rk) Show(rkChild) Show(rkGrandChild) rkGrandChild.Close() rkChild.Close() rk.Close() cu.DeleteSubKeyTree(TestKey) End Sub Private Shared Sub Show(ByVal rk As RegistryKey) Console.WriteLine(rk.Name) ShowSecurity(rk.GetAccessControl()) End Sub Private Shared Sub ShowSecurity(ByVal security As RegistrySecurity) Console.WriteLine(vbCrLf & "Current access rules:" & vbCrLf) For Each ar As RegistryAccessRule In _ security.GetAccessRules(True, True, GetType(NTAccount)) Console.WriteLine(" User: {0}", ar.IdentityReference) Console.WriteLine(" Type: {0}", ar.AccessControlType) Console.WriteLine(" Rights: {0}", ar.RegistryRights) Console.WriteLine(" Inheritance: {0}", ar.InheritanceFlags) Console.WriteLine(" Propagation: {0}", ar.PropagationFlags) Console.WriteLine(" Inherited? {0}", ar.IsInherited) Console.WriteLine() Next End Sub End Class 'This code example produces output similar to following: ' 'Current access rules: ' ' User: TestDomain\TestUser ' Type: Allow ' Rights: SetValue, CreateSubKey, Delete, ReadKey ' Inheritance: ContainerInherit ' Propagation: None ' Inherited? False ' ' User: TestDomain\TestUser ' Type: Allow ' Rights: ChangePermissions ' Inheritance: ContainerInherit ' Propagation: NoPropagateInherit, InheritOnly ' Inherited? False ' 'HKEY_CURRENT_USER\TestKey3927 ' 'Current access rules: ' ' User: TestDomain\TestUser ' Type: Allow ' Rights: SetValue, CreateSubKey, Delete, ReadKey ' Inheritance: ContainerInherit ' Propagation: None ' Inherited? False ' ' User: TestDomain\TestUser ' Type: Allow ' Rights: ChangePermissions ' Inheritance: ContainerInherit ' Propagation: NoPropagateInherit, InheritOnly ' Inherited? False ' 'HKEY_CURRENT_USER\TestKey3927\ChildKey ' 'Current access rules: ' ' User: TestDomain\TestUser ' Type: Allow ' Rights: SetValue, CreateSubKey, Delete, ReadKey ' Inheritance: ContainerInherit ' Propagation: None ' Inherited? True ' ' User: TestDomain\TestUser ' Type: Allow ' Rights: ChangePermissions ' Inheritance: None ' Propagation: None ' Inherited? True ' 'HKEY_CURRENT_USER\TestKey3927\ChildKey\GrandChildKey ' 'Current access rules: ' ' User: TestDomain\TestUser ' Type: Allow ' Rights: SetValue, CreateSubKey, Delete, ReadKey ' Inheritance: ContainerInherit ' Propagation: None ' Inherited? True
using System; using System.Security.AccessControl; using System.Security.Principal; using System.Security; using Microsoft.Win32; public class Example { public static void Main() { const string TestKey = "TestKey3927"; RegistryKey cu = Registry.CurrentUser; string user = Environment.UserDomainName + "\\" + Environment.UserName; // Create a security object that grants no access. RegistrySecurity mSec = new RegistrySecurity(); // Add a rule that grants the current user the right // to read and enumerate the name/value pairs in a key, // to read its access and audit rules, to enumerate // its subkeys, to create subkeys, and to delete the key. // The rule is inherited by all contained subkeys. // RegistryAccessRule rule = new RegistryAccessRule(user, RegistryRights.ReadKey | RegistryRights.WriteKey | RegistryRights.Delete, InheritanceFlags.ContainerInherit, PropagationFlags.None, AccessControlType.Allow ); mSec.AddAccessRule(rule); // Add a rule that allows the current user the right // right to set the name/value pairs in a key. // This rule is inherited by contained subkeys, but // propagation flags limit it to immediate child // subkeys. rule = new RegistryAccessRule(user, RegistryRights.ChangePermissions, InheritanceFlags.ContainerInherit, PropagationFlags.InheritOnly | PropagationFlags.NoPropagateInherit, AccessControlType.Allow); mSec.AddAccessRule(rule); // Display the rules in the security object. ShowSecurity(mSec); // Create the test key using the security object. // RegistryKey rk = cu.CreateSubKey(TestKey, RegistryKeyPermissionCheck.ReadWriteSubTree, mSec); // Create a child subkey and a grandchild subkey, // without security. RegistryKey rkChild = rk.CreateSubKey("ChildKey", RegistryKeyPermissionCheck.ReadWriteSubTree); RegistryKey rkGrandChild = rkChild.CreateSubKey("GrandChildKey", RegistryKeyPermissionCheck.ReadWriteSubTree); Show(rk); Show(rkChild); Show(rkGrandChild); rkGrandChild.Close(); rkChild.Close(); rk.Close(); cu.DeleteSubKeyTree(TestKey); } private static void Show(RegistryKey rk) { Console.WriteLine(rk.Name); ShowSecurity(rk.GetAccessControl()); } private static void ShowSecurity(RegistrySecurity security) { Console.WriteLine("\r\nCurrent access rules:\r\n"); foreach( RegistryAccessRule 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.RegistryRights); Console.WriteLine(" Inheritance: {0}", ar.InheritanceFlags); Console.WriteLine(" Propagation: {0}", ar.PropagationFlags); Console.WriteLine(" Inherited? {0}", ar.IsInherited); Console.WriteLine(); } } } /* This code example produces output similar to following: Current access rules: User: TestDomain\TestUser Type: Allow Rights: SetValue, CreateSubKey, Delete, ReadKey Inheritance: ContainerInherit Propagation: None Inherited? False User: TestDomain\TestUser Type: Allow Rights: ChangePermissions Inheritance: ContainerInherit Propagation: NoPropagateInherit, InheritOnly Inherited? False HKEY_CURRENT_USER\TestKey3927 Current access rules: User: TestDomain\TestUser Type: Allow Rights: SetValue, CreateSubKey, Delete, ReadKey Inheritance: ContainerInherit Propagation: None Inherited? False User: TestDomain\TestUser Type: Allow Rights: ChangePermissions Inheritance: ContainerInherit Propagation: NoPropagateInherit, InheritOnly Inherited? False HKEY_CURRENT_USER\TestKey3927\ChildKey Current access rules: User: TestDomain\TestUser Type: Allow Rights: SetValue, CreateSubKey, Delete, ReadKey Inheritance: ContainerInherit Propagation: None Inherited? True User: TestDomain\TestUser Type: Allow Rights: ChangePermissions Inheritance: None Propagation: None Inherited? True HKEY_CURRENT_USER\TestKey3927\ChildKey\GrandChildKey Current access rules: User: TestDomain\TestUser Type: Allow Rights: SetValue, CreateSubKey, Delete, ReadKey Inheritance: ContainerInherit Propagation: None Inherited? True */

System.Security.AccessControl.ObjectSecurity
System.Security.AccessControl.CommonObjectSecurity
System.Security.AccessControl.NativeObjectSecurity
System.Security.AccessControl.RegistrySecurity


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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


RegistrySecurity コンストラクタ
アセンブリ: mscorlib (mscorlib.dll 内)



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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


RegistrySecurity プロパティ

名前 | 説明 | |
---|---|---|
![]() | AccessRightType | オーバーライドされます。 RegistrySecurity クラスでアクセス権を表すために使用する列挙型を取得します。 |
![]() | AccessRuleType | オーバーライドされます。 RegistrySecurity クラスでアクセス規則を表すために使用する型を取得します。 |
![]() | AreAccessRulesCanonical | この ObjectSecurity オブジェクトに関連付けられたアクセス規則の順序が標準であるかどうかを指定するブール値を取得します。 ( ObjectSecurity から継承されます。) |
![]() | AreAccessRulesProtected | この ObjectSecurity オブジェクトに関連付けられた随意アクセス制御リスト (DACL: Discretionary Access Control List) が保護されているかどうかを指定するブール値を取得します。 ( ObjectSecurity から継承されます。) |
![]() | AreAuditRulesCanonical | この ObjectSecurity オブジェクトに関連付けられた監査規則の順序が標準であるかどうかを指定するブール値を取得します。 ( ObjectSecurity から継承されます。) |
![]() | AreAuditRulesProtected | この ObjectSecurity オブジェクトに関連付けられたシステム アクセス制御リスト (SACL: System Access Control List) が保護されているかどうかを指定するブール値を取得します。 ( ObjectSecurity から継承されます。) |
![]() | AuditRuleType | オーバーライドされます。 RegistrySecurity クラスで監査規則を表すために使用する型を取得します。 |

RegistrySecurity メソッド

名前 | 説明 | |
---|---|---|
![]() | AccessRuleFactory | オーバーライドされます。 アクセス権、アクセス制御、およびフラグを指定して、指定したユーザーに対して新しいアクセス制御規則を作成します。 |
![]() | AddAccessRule | 新しい規則をマージできる、一致するアクセス制御を検索します。見つからなかった場合は、新しい規則が追加されます。 |
![]() | AddAuditRule | 新しい規則をマージできる監査規則を検索します。見つからなかった場合は、新しい規則が追加されます。 |
![]() | AuditRuleFactory | オーバーライドされます。 規則の適用対象となるユーザー、監査するアクセス権、規則の継承と反映、および規則を発生させる結果を指定して、新しい監査規則を作成します。 |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetAccessRules | 指定したセキュリティ識別子に関連付けられたアクセス規則のコレクションを取得します。 ( CommonObjectSecurity から継承されます。) |
![]() | GetAuditRules | 指定したセキュリティ識別子に関連付けられた監査規則のコレクションを取得します。 ( CommonObjectSecurity から継承されます。) |
![]() | GetGroup | 指定した所有者に関連付けられているプライマリ グループを取得します。 ( ObjectSecurity から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetOwner | 指定したプライマリ グループに関連付けられている所有者を取得します。 ( ObjectSecurity から継承されます。) |
![]() | GetSecurityDescriptorBinaryForm | この ObjectSecurity オブジェクトのセキュリティ記述子情報を表すバイト値の配列を返します。 ( ObjectSecurity から継承されます。) |
![]() | GetSecurityDescriptorSddlForm | この ObjectSecurity オブジェクトに関連付けられたセキュリティ記述子の指定したセクションの SDDL (Security Descriptor Definition Language) 形式を返します。 ( ObjectSecurity から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | IsSddlConversionSupported | この ObjectSecurity オブジェクトに関連付けられたセキュリティ記述子を SDDL (Security Descriptor Definition Language) 形式に変換できるかどうかを示すブール値を返します。 ( ObjectSecurity から継承されます。) |
![]() | ModifyAccessRule | 指定した変更を、この ObjectSecurity オブジェクトに関連付けられた随意アクセス制御リスト (DACL: Discretionary Access Control List) に適用します。 ( ObjectSecurity から継承されます。) |
![]() | ModifyAuditRule | 指定した変更を、この ObjectSecurity オブジェクトに関連付けられたシステム アクセス制御リスト (SACL: System Access Control List) に適用します。 ( ObjectSecurity から継承されます。) |
![]() | PurgeAccessRules | 指定した IdentityReference に関連付けられたすべてのアクセス規則を削除します。 ( ObjectSecurity から継承されます。) |
![]() | PurgeAuditRules | 指定した IdentityReference に関連付けられたすべての監査規則を削除します。 ( ObjectSecurity から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | RemoveAccessRule | 指定したアクセス規則と同じユーザーと AccessControlType (許可または拒否)、および互換性のある継承フラグと反映フラグが指定されたアクセス制御規則が検索されます。このような規則が見つかると、指定したアクセス規則に含まれる権限がその規則から削除されます。 |
![]() | RemoveAccessRuleAll | 指定した規則と同じユーザーおよび同じ AccessControlType (許可または拒否) が指定されたアクセス制御規則をすべて検索し、一致する規則が見つかった場合は、その規則を削除します。 |
![]() | RemoveAccessRuleSpecific | 指定した規則に正確に一致するアクセス制御規則を検索し、見つかった場合は、その規則を削除します。 |
![]() | RemoveAuditRule | 指定した規則と同じユーザー、および互換性のある継承フラグと反映フラグが指定された監査制御規則が検索されます。互換性のある規則が見つかると、指定した規則に含まれる権限がその規則から削除されます。 |
![]() | RemoveAuditRuleAll | 指定した規則と同じユーザーが指定された監査規則をすべて検索し、一致する規則が見つかった場合は、その規則を削除します。 |
![]() | RemoveAuditRuleSpecific | 指定した規則に正確に一致する監査規則を検索し、見つかった場合は、その規則を削除します。 |
![]() | ResetAccessRule | AccessControlType に関係なく、指定した規則と同じユーザーが指定されたすべてのアクセス制御規則を削除し、指定した規則を追加します。 |
![]() | SetAccessRule | 指定した規則と同じユーザーおよび同じ AccessControlType (許可または拒否) が指定されたすべてのアクセス制御規則を削除し、指定した規則を追加します。 |
![]() | SetAccessRuleProtection | この ObjectSecurity オブジェクトに関連付けられたアクセス規則の保護を設定または削除します。保護されたアクセス規則を親オブジェクトから継承を通じて変更することはできません。 ( ObjectSecurity から継承されます。) |
![]() | SetAuditRule | AuditFlags 値に関係なく、指定した規則と同じユーザーが指定されたすべての監査規則を削除し、指定した規則を追加します。 |
![]() | SetAuditRuleProtection | この ObjectSecurity オブジェクトに関連付けられた監査規則の保護を設定または削除します。保護された監査規則を親オブジェクトから継承を通じて変更することはできません。 ( ObjectSecurity から継承されます。) |
![]() | SetGroup | この ObjectSecurity オブジェクトに関連付けられたセキュリティ記述子のプライマリ グループを設定します。 ( ObjectSecurity から継承されます。) |
![]() | SetOwner | この ObjectSecurity オブジェクトに関連付けられたセキュリティ記述子の所有者を設定します。 ( ObjectSecurity から継承されます。) |
![]() | SetSecurityDescriptorBinaryForm | オーバーロードされます。 指定したバイナリ データからこの ObjectSecurity オブジェクトのセキュリティ記述子を設定します。 ( ObjectSecurity から継承されます。) |
![]() | SetSecurityDescriptorSddlForm | オーバーロードされます。 指定した SDDL (Security Descriptor Definition Language) 文字列からこの ObjectSecurity オブジェクトのセキュリティ記述子を設定します。 ( ObjectSecurity から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

RegistrySecurity メンバ
レジストリ キーの Windows アクセス制御セキュリティを表します。このクラスは継承できません。
RegistrySecurity データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | AccessRightType | オーバーライドされます。 RegistrySecurity クラスでアクセス権を表すために使用する列挙型を取得します。 |
![]() | AccessRuleType | オーバーライドされます。 RegistrySecurity クラスでアクセス規則を表すために使用する型を取得します。 |
![]() | AreAccessRulesCanonical | この ObjectSecurity オブジェクトに関連付けられたアクセス規則の順序が標準であるかどうかを指定するブール値を取得します。(ObjectSecurity から継承されます。) |
![]() | AreAccessRulesProtected | この ObjectSecurity オブジェクトに関連付けられた随意アクセス制御リスト (DACL: Discretionary Access Control List) が保護されているかどうかを指定するブール値を取得します。(ObjectSecurity から継承されます。) |
![]() | AreAuditRulesCanonical | この ObjectSecurity オブジェクトに関連付けられた監査規則の順序が標準であるかどうかを指定するブール値を取得します。(ObjectSecurity から継承されます。) |
![]() | AreAuditRulesProtected | この ObjectSecurity オブジェクトに関連付けられたシステム アクセス制御リスト (SACL: System Access Control List) が保護されているかどうかを指定するブール値を取得します。(ObjectSecurity から継承されます。) |
![]() | AuditRuleType | オーバーライドされます。 RegistrySecurity クラスで監査規則を表すために使用する型を取得します。 |

名前 | 説明 | |
---|---|---|
![]() | AccessRuleFactory | オーバーライドされます。 アクセス権、アクセス制御、およびフラグを指定して、指定したユーザーに対して新しいアクセス制御規則を作成します。 |
![]() | AddAccessRule | 新しい規則をマージできる、一致するアクセス制御を検索します。見つからなかった場合は、新しい規則が追加されます。 |
![]() | AddAuditRule | 新しい規則をマージできる監査規則を検索します。見つからなかった場合は、新しい規則が追加されます。 |
![]() | AuditRuleFactory | オーバーライドされます。 規則の適用対象となるユーザー、監査するアクセス権、規則の継承と反映、および規則を発生させる結果を指定して、新しい監査規則を作成します。 |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetAccessRules | 指定したセキュリティ識別子に関連付けられたアクセス規則のコレクションを取得します。 (CommonObjectSecurity から継承されます。) |
![]() | GetAuditRules | 指定したセキュリティ識別子に関連付けられた監査規則のコレクションを取得します。 (CommonObjectSecurity から継承されます。) |
![]() | GetGroup | 指定した所有者に関連付けられているプライマリ グループを取得します。 (ObjectSecurity から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetOwner | 指定したプライマリ グループに関連付けられている所有者を取得します。 (ObjectSecurity から継承されます。) |
![]() | GetSecurityDescriptorBinaryForm | この ObjectSecurity オブジェクトのセキュリティ記述子情報を表すバイト値の配列を返します。 (ObjectSecurity から継承されます。) |
![]() | GetSecurityDescriptorSddlForm | この ObjectSecurity オブジェクトに関連付けられたセキュリティ記述子の指定したセクションの SDDL (Security Descriptor Definition Language) 形式を返します。 (ObjectSecurity から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | IsSddlConversionSupported | この ObjectSecurity オブジェクトに関連付けられたセキュリティ記述子を SDDL (Security Descriptor Definition Language) 形式に変換できるかどうかを示すブール値を返します。 (ObjectSecurity から継承されます。) |
![]() | ModifyAccessRule | 指定した変更を、この ObjectSecurity オブジェクトに関連付けられた随意アクセス制御リスト (DACL: Discretionary Access Control List) に適用します。 (ObjectSecurity から継承されます。) |
![]() | ModifyAuditRule | 指定した変更を、この ObjectSecurity オブジェクトに関連付けられたシステム アクセス制御リスト (SACL: System Access Control List) に適用します。 (ObjectSecurity から継承されます。) |
![]() | PurgeAccessRules | 指定した IdentityReference に関連付けられたすべてのアクセス規則を削除します。 (ObjectSecurity から継承されます。) |
![]() | PurgeAuditRules | 指定した IdentityReference に関連付けられたすべての監査規則を削除します。 (ObjectSecurity から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | RemoveAccessRule | 指定したアクセス規則と同じユーザーと AccessControlType (許可または拒否)、および互換性のある継承フラグと反映フラグが指定されたアクセス制御規則が検索されます。このような規則が見つかると、指定したアクセス規則に含まれる権限がその規則から削除されます。 |
![]() | RemoveAccessRuleAll | 指定した規則と同じユーザーおよび同じ AccessControlType (許可または拒否) が指定されたアクセス制御規則をすべて検索し、一致する規則が見つかった場合は、その規則を削除します。 |
![]() | RemoveAccessRuleSpecific | 指定した規則に正確に一致するアクセス制御規則を検索し、見つかった場合は、その規則を削除します。 |
![]() | RemoveAuditRule | 指定した規則と同じユーザー、および互換性のある継承フラグと反映フラグが指定された監査制御規則が検索されます。互換性のある規則が見つかると、指定した規則に含まれる権限がその規則から削除されます。 |
![]() | RemoveAuditRuleAll | 指定した規則と同じユーザーが指定された監査規則をすべて検索し、一致する規則が見つかった場合は、その規則を削除します。 |
![]() | RemoveAuditRuleSpecific | 指定した規則に正確に一致する監査規則を検索し、見つかった場合は、その規則を削除します。 |
![]() | ResetAccessRule | AccessControlType に関係なく、指定した規則と同じユーザーが指定されたすべてのアクセス制御規則を削除し、指定した規則を追加します。 |
![]() | SetAccessRule | 指定した規則と同じユーザーおよび同じ AccessControlType (許可または拒否) が指定されたすべてのアクセス制御規則を削除し、指定した規則を追加します。 |
![]() | SetAccessRuleProtection | この ObjectSecurity オブジェクトに関連付けられたアクセス規則の保護を設定または削除します。保護されたアクセス規則を親オブジェクトから継承を通じて変更することはできません。 (ObjectSecurity から継承されます。) |
![]() | SetAuditRule | AuditFlags 値に関係なく、指定した規則と同じユーザーが指定されたすべての監査規則を削除し、指定した規則を追加します。 |
![]() | SetAuditRuleProtection | この ObjectSecurity オブジェクトに関連付けられた監査規則の保護を設定または削除します。保護された監査規則を親オブジェクトから継承を通じて変更することはできません。 (ObjectSecurity から継承されます。) |
![]() | SetGroup | この ObjectSecurity オブジェクトに関連付けられたセキュリティ記述子のプライマリ グループを設定します。 (ObjectSecurity から継承されます。) |
![]() | SetOwner | この ObjectSecurity オブジェクトに関連付けられたセキュリティ記述子の所有者を設定します。 (ObjectSecurity から継承されます。) |
![]() | SetSecurityDescriptorBinaryForm | オーバーロードされます。 指定したバイナリ データからこの ObjectSecurity オブジェクトのセキュリティ記述子を設定します。 (ObjectSecurity から継承されます。) |
![]() | SetSecurityDescriptorSddlForm | オーバーロードされます。 指定した SDDL (Security Descriptor Definition Language) 文字列からこの ObjectSecurity オブジェクトのセキュリティ記述子を設定します。 (ObjectSecurity から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

- RegistrySecurityのページへのリンク