This commit is contained in:
niko
2026-06-04 11:42:34 +02:00
parent f39ba70a9f
commit e720b98cd1
7488 changed files with 2493818 additions and 0 deletions
@@ -0,0 +1,20 @@
using System;
namespace System.Security.AccessControl
{
/// <summary>Specifies the actions that are permitted for securable objects.</summary>
// Token: 0x020004A1 RID: 1185
[Flags]
public enum AccessControlActions
{
/// <summary>Specifies no access.</summary>
// Token: 0x04001158 RID: 4440
None = 0,
/// <summary>Specifies read-only access.</summary>
// Token: 0x04001159 RID: 4441
View = 1,
/// <summary>Specifies write-only access.</summary>
// Token: 0x0400115A RID: 4442
Change = 2
}
}
@@ -0,0 +1,28 @@
using System;
namespace System.Security.AccessControl
{
/// <summary>Specifies the type of access control modification to perform. This enumeration is used by methods of the <see cref="T:System.Security.AccessControl.ObjectSecurity" /> class and its descendents.</summary>
// Token: 0x020004A2 RID: 1186
public enum AccessControlModification
{
/// <summary>Add the specified authorization rule to the access control list (ACL).</summary>
// Token: 0x0400115C RID: 4444
Add,
/// <summary>Remove all authorization rules from the ACL, then add the specified authorization rule to the ACL.</summary>
// Token: 0x0400115D RID: 4445
Set,
/// <summary>Remove authorization rules that contain the same SID as the specified authorization rule from the ACL, and then add the specified authorization rule to the ACL.</summary>
// Token: 0x0400115E RID: 4446
Reset,
/// <summary>Remove authorization rules that contain the same security identifier (SID) and access mask as the specified authorization rule from the ACL.</summary>
// Token: 0x0400115F RID: 4447
Remove,
/// <summary>Remove authorization rules that contain the same SID as the specified authorization rule from the ACL.</summary>
// Token: 0x04001160 RID: 4448
RemoveAll,
/// <summary>Remove authorization rules that exactly match the specified authorization rule from the ACL.</summary>
// Token: 0x04001161 RID: 4449
RemoveSpecific
}
}
@@ -0,0 +1,29 @@
using System;
namespace System.Security.AccessControl
{
/// <summary>Specifies which sections of a security descriptor to save or load.</summary>
// Token: 0x020004A3 RID: 1187
[Flags]
public enum AccessControlSections
{
/// <summary>No sections.</summary>
// Token: 0x04001163 RID: 4451
None = 0,
/// <summary>The system access control list (SACL).</summary>
// Token: 0x04001164 RID: 4452
Audit = 1,
/// <summary>The discretionary access control list (DACL).</summary>
// Token: 0x04001165 RID: 4453
Access = 2,
/// <summary>The owner.</summary>
// Token: 0x04001166 RID: 4454
Owner = 4,
/// <summary>The primary group.</summary>
// Token: 0x04001167 RID: 4455
Group = 8,
/// <summary>The entire security descriptor.</summary>
// Token: 0x04001168 RID: 4456
All = 15
}
}
@@ -0,0 +1,16 @@
using System;
namespace System.Security.AccessControl
{
/// <summary>Specifies whether an <see cref="T:System.Security.AccessControl.AccessRule" /> object is used to allow or deny access. These values are not flags, and they cannot be combined.</summary>
// Token: 0x020004A4 RID: 1188
public enum AccessControlType
{
/// <summary>The <see cref="T:System.Security.AccessControl.AccessRule" /> object is used to allow access to a secured object.</summary>
// Token: 0x0400116A RID: 4458
Allow,
/// <summary>The <see cref="T:System.Security.AccessControl.AccessRule" /> object is used to deny access to a secured object.</summary>
// Token: 0x0400116B RID: 4459
Deny
}
}
@@ -0,0 +1,53 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Represents a combination of a user's identity, an access mask, and an access control type (allow or deny). An <see cref="T:System.Security.AccessControl.AccessRule" /> object also contains information about the how the rule is inherited by child objects and how that inheritance is propagated.</summary>
// Token: 0x020004A5 RID: 1189
public abstract class AccessRule : AuthorizationRule
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.AccessRule" /> class by using the specified values.</summary>
/// <param name="identity">The identity to which the access rule applies. This parameter must be an object that can be cast as a <see cref="T:System.Security.Principal.SecurityIdentifier" />.</param>
/// <param name="accessMask">The access mask of this rule. The access mask is a 32-bit collection of anonymous bits, the meaning of which is defined by the individual integrators.</param>
/// <param name="isInherited">true if this rule is inherited from a parent container.</param>
/// <param name="inheritanceFlags">The inheritance properties of the access rule.</param>
/// <param name="propagationFlags">Whether inherited access rules are automatically propagated. The propagation flags are ignored if <paramref name="inheritanceFlags" /> is set to <see cref="F:System.Security.AccessControl.InheritanceFlags.None" />.</param>
/// <param name="type">The valid access control type.</param>
/// <exception cref="T:System.ArgumentException">The value of the <paramref name="identity" /> parameter cannot be cast as a <see cref="T:System.Security.Principal.SecurityIdentifier" />, or the <paramref name="type" /> parameter contains an invalid value.</exception>
/// <exception cref="T:System.ArgumentOutOfRangeException">The value of the <paramref name="accessMask" /> parameter is zero, or the <paramref name="inheritanceFlags" /> or <paramref name="propagationFlags" /> parameters contain unrecognized flag values.</exception>
// Token: 0x06002CA8 RID: 11432 RVA: 0x00092DCC File Offset: 0x00090FCC
protected AccessRule(IdentityReference identity, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType type)
: base(identity, accessMask, isInherited, inheritanceFlags, propagationFlags)
{
if (!(identity is SecurityIdentifier))
{
throw new ArgumentException("identity");
}
if (type < AccessControlType.Allow || type > AccessControlType.Deny)
{
throw new ArgumentException("type");
}
if (accessMask == 0)
{
throw new ArgumentOutOfRangeException();
}
this.type = type;
}
/// <summary>Gets the <see cref="T:System.Security.AccessControl.AccessControlType" /> value associated with this <see cref="T:System.Security.AccessControl.AccessRule" /> object.</summary>
/// <returns>The <see cref="T:System.Security.AccessControl.AccessControlType" /> value associated with this <see cref="T:System.Security.AccessControl.AccessRule" /> object.</returns>
// Token: 0x170008B6 RID: 2230
// (get) Token: 0x06002CA9 RID: 11433 RVA: 0x00092E2C File Offset: 0x0009102C
public AccessControlType AccessControlType
{
get
{
return this.type;
}
}
// Token: 0x0400116C RID: 4460
private AccessControlType type;
}
}
@@ -0,0 +1,66 @@
using System;
using System.Collections;
namespace System.Security.AccessControl
{
/// <summary>Provides the ability to iterate through the access control entries (ACEs) in an access control list (ACL). </summary>
// Token: 0x020004A6 RID: 1190
public sealed class AceEnumerator : IEnumerator
{
// Token: 0x06002CAA RID: 11434 RVA: 0x00092E34 File Offset: 0x00091034
internal AceEnumerator(GenericAcl owner)
{
this.owner = owner;
}
// Token: 0x170008B7 RID: 2231
// (get) Token: 0x06002CAB RID: 11435 RVA: 0x00092E4C File Offset: 0x0009104C
object IEnumerator.Current
{
get
{
return this.Current;
}
}
/// <summary>Gets the current element in the <see cref="T:System.Security.AccessControl.GenericAce" /> collection. This property gets the type-friendly version of the object. </summary>
/// <returns>The current element in the <see cref="T:System.Security.AccessControl.GenericAce" /> collection.</returns>
// Token: 0x170008B8 RID: 2232
// (get) Token: 0x06002CAC RID: 11436 RVA: 0x00092E54 File Offset: 0x00091054
public GenericAce Current
{
get
{
return (this.current >= 0) ? this.owner[this.current] : null;
}
}
/// <summary>Advances the enumerator to the next element of the <see cref="T:System.Security.AccessControl.GenericAce" /> collection.</summary>
/// <returns>true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection.</returns>
/// <exception cref="T:System.InvalidOperationException">The collection was modified after the enumerator was created.</exception>
// Token: 0x06002CAD RID: 11437 RVA: 0x00092E7C File Offset: 0x0009107C
public bool MoveNext()
{
if (this.current + 1 == this.owner.Count)
{
return false;
}
this.current++;
return true;
}
/// <summary>Sets the enumerator to its initial position, which is before the first element in the <see cref="T:System.Security.AccessControl.GenericAce" /> collection.</summary>
/// <exception cref="T:System.InvalidOperationException">The collection was modified after the enumerator was created.</exception>
// Token: 0x06002CAE RID: 11438 RVA: 0x00092EA8 File Offset: 0x000910A8
public void Reset()
{
this.current = -1;
}
// Token: 0x0400116D RID: 4461
private GenericAcl owner;
// Token: 0x0400116E RID: 4462
private int current = -1;
}
}
@@ -0,0 +1,41 @@
using System;
namespace System.Security.AccessControl
{
/// <summary>Specifies the inheritance and auditing behavior of an access control entry (ACE).</summary>
// Token: 0x020004A7 RID: 1191
[Flags]
public enum AceFlags : byte
{
/// <summary>No ACE flags are set.</summary>
// Token: 0x04001170 RID: 4464
None = 0,
/// <summary>The access mask is propagated onto child leaf objects.</summary>
// Token: 0x04001171 RID: 4465
ObjectInherit = 1,
/// <summary>The access mask is propagated to child container objects.</summary>
// Token: 0x04001172 RID: 4466
ContainerInherit = 2,
/// <summary>The access checks do not apply to the object; they only apply to its children.</summary>
// Token: 0x04001173 RID: 4467
NoPropagateInherit = 4,
/// <summary>The access mask is propagated only to child objects. This includes both container and leaf child objects.</summary>
// Token: 0x04001174 RID: 4468
InheritOnly = 8,
/// <summary>A logical OR of <see cref="F:System.Security.AccessControl.AceFlags.ObjectInherit" />, <see cref="F:System.Security.AccessControl.AceFlags.ContainerInherit" />, <see cref="F:System.Security.AccessControl.AceFlags.NoPropagateInherit" />, and <see cref="F:System.Security.AccessControl.AceFlags.InheritOnly" />.</summary>
// Token: 0x04001175 RID: 4469
InheritanceFlags = 15,
/// <summary>An ACE is inherited from a parent container rather than being explicitly set for an object.</summary>
// Token: 0x04001176 RID: 4470
Inherited = 16,
/// <summary>Successful access attempts are audited.</summary>
// Token: 0x04001177 RID: 4471
SuccessfulAccess = 64,
/// <summary>Failed access attempts are audited.</summary>
// Token: 0x04001178 RID: 4472
FailedAccess = 128,
/// <summary>All access attempts are audited.</summary>
// Token: 0x04001179 RID: 4473
AuditFlags = 192
}
}
@@ -0,0 +1,22 @@
using System;
namespace System.Security.AccessControl
{
/// <summary>Specifies the function of an access control entry (ACE).</summary>
// Token: 0x020004A8 RID: 1192
public enum AceQualifier
{
/// <summary>Allow access.</summary>
// Token: 0x0400117B RID: 4475
AccessAllowed,
/// <summary>Deny access.</summary>
// Token: 0x0400117C RID: 4476
AccessDenied,
/// <summary>Cause a system audit.</summary>
// Token: 0x0400117D RID: 4477
SystemAudit,
/// <summary>Cause a system alarm.</summary>
// Token: 0x0400117E RID: 4478
SystemAlarm
}
}
@@ -0,0 +1,64 @@
using System;
namespace System.Security.AccessControl
{
/// <summary>Defines the available access control entry (ACE) types.</summary>
// Token: 0x020004A9 RID: 1193
public enum AceType
{
/// <summary>Allows access to an object for a specific trustee identified by an <see cref="T:System.Security.Principal.IdentityReference" /> object.</summary>
// Token: 0x04001180 RID: 4480
AccessAllowed,
/// <summary>Denies access to an object for a specific trustee identified by an <see cref="T:System.Security.Principal.IdentityReference" /> object.</summary>
// Token: 0x04001181 RID: 4481
AccessDenied,
/// <summary>Causes an audit message to be logged when a specified trustee attempts to gain access to an object. The trustee is identified by an <see cref="T:System.Security.Principal.IdentityReference" /> object.</summary>
// Token: 0x04001182 RID: 4482
SystemAudit,
/// <summary>Reserved for future use.</summary>
// Token: 0x04001183 RID: 4483
SystemAlarm,
/// <summary>Defined but never used. Included here for completeness.</summary>
// Token: 0x04001184 RID: 4484
AccessAllowedCompound,
/// <summary>Allows access to an object, property set, or property. The ACE contains a set of access rights, a GUID that identifies the type of object, and an <see cref="T:System.Security.Principal.IdentityReference" /> object that identifies the trustee to whom the system will grant access. The ACE also contains a GUID and a set of flags that control inheritance of the ACE by child objects.</summary>
// Token: 0x04001185 RID: 4485
AccessAllowedObject,
/// <summary>Denies access to an object, property set, or property. The ACE contains a set of access rights, a GUID that identifies the type of object, and an <see cref="T:System.Security.Principal.IdentityReference" /> object that identifies the trustee to whom the system will grant access. The ACE also contains a GUID and a set of flags that control inheritance of the ACE by child objects.</summary>
// Token: 0x04001186 RID: 4486
AccessDeniedObject,
/// <summary>Causes an audit message to be logged when a specified trustee attempts to gain access to an object or subobjects such as property sets or properties. The ACE contains a set of access rights, a GUID that identifies the type of object or subobject, and an <see cref="T:System.Security.Principal.IdentityReference" /> object that identifies the trustee for whom the system will audit access. The ACE also contains a GUID and a set of flags that control inheritance of the ACE by child objects.</summary>
// Token: 0x04001187 RID: 4487
SystemAuditObject,
/// <summary>Reserved for future use.</summary>
// Token: 0x04001188 RID: 4488
SystemAlarmObject,
/// <summary>Allows access to an object for a specific trustee identified by an <see cref="T:System.Security.Principal.IdentityReference" /> object. This ACE type may contain optional callback data. The callback data is a resource managerspecific BLOB that is not interpreted.</summary>
// Token: 0x04001189 RID: 4489
AccessAllowedCallback,
/// <summary>Denies access to an object for a specific trustee identified by an <see cref="T:System.Security.Principal.IdentityReference" /> object. This ACE type can contain optional callback data. The callback data is a resource managerspecific BLOB that is not interpreted.</summary>
// Token: 0x0400118A RID: 4490
AccessDeniedCallback,
/// <summary>Allows access to an object, property set, or property. The ACE contains a set of access rights, a GUID that identifies the type of object, and an <see cref="T:System.Security.Principal.IdentityReference" /> object that identifies the trustee to whom the system will grant access. The ACE also contains a GUID and a set of flags that control inheritance of the ACE by child objects. This ACE type may contain optional callback data. The callback data is a resource managerspecific BLOB that is not interpreted.</summary>
// Token: 0x0400118B RID: 4491
AccessAllowedCallbackObject,
/// <summary>Denies access to an object, property set, or property. The ACE contains a set of access rights, a GUID that identifies the type of object, and an <see cref="T:System.Security.Principal.IdentityReference" /> object that identifies the trustee to whom the system will grant access. The ACE also contains a GUID and a set of flags that control inheritance of the ACE by child objects. This ACE type can contain optional callback data. The callback data is a resource managerspecific BLOB that is not interpreted.</summary>
// Token: 0x0400118C RID: 4492
AccessDeniedCallbackObject,
/// <summary>Causes an audit message to be logged when a specified trustee attempts to gain access to an object. The trustee is identified by an <see cref="T:System.Security.Principal.IdentityReference" /> object. This ACE type can contain optional callback data. The callback data is a resource managerspecific BLOB that is not interpreted.</summary>
// Token: 0x0400118D RID: 4493
SystemAuditCallback,
/// <summary>Reserved for future use.</summary>
// Token: 0x0400118E RID: 4494
SystemAlarmCallback,
/// <summary>Causes an audit message to be logged when a specified trustee attempts to gain access to an object or subobjects such as property sets or properties. The ACE contains a set of access rights, a GUID that identifies the type of object or subobject, and an <see cref="T:System.Security.Principal.IdentityReference" /> object that identifies the trustee for whom the system will audit access. The ACE also contains a GUID and a set of flags that control inheritance of the ACE by child objects. This ACE type can contain optional callback data. The callback data is a resource managerspecific BLOB that is not interpreted.</summary>
// Token: 0x0400118F RID: 4495
SystemAuditCallbackObject,
/// <summary>Reserved for future use.</summary>
// Token: 0x04001190 RID: 4496
SystemAlarmCallbackObject,
/// <summary>Tracks the maximum defined ACE type in the enumeration.</summary>
// Token: 0x04001191 RID: 4497
MaxDefinedAceType = 16
}
}
@@ -0,0 +1,20 @@
using System;
namespace System.Security.AccessControl
{
/// <summary>Specifies the conditions for auditing attempts to access a securable object.</summary>
// Token: 0x020004AA RID: 1194
[Flags]
public enum AuditFlags
{
/// <summary>No access attempts are to be audited.</summary>
// Token: 0x04001193 RID: 4499
None = 0,
/// <summary>Successful access attempts are to be audited.</summary>
// Token: 0x04001194 RID: 4500
Success = 1,
/// <summary>Failed access attempts are to be audited.</summary>
// Token: 0x04001195 RID: 4501
Failure = 2
}
}
@@ -0,0 +1,49 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Represents a combination of a user's identity and an access mask. An <see cref="T:System.Security.AccessControl.AuditRule" /> object also contains information about how the rule is inherited by child objects, how that inheritance is propagated, and for what conditions it is audited.</summary>
// Token: 0x020004AB RID: 1195
public abstract class AuditRule : AuthorizationRule
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.AuditRule" /> class by using the specified values.</summary>
/// <param name="identity">The identity to which the audit rule applies. It must be an object that can be cast as a <see cref="T:System.Security.Principal.SecurityIdentifier" />.</param>
/// <param name="accessMask">The access mask of this rule. The access mask is a 32-bit collection of anonymous bits, the meaning of which is defined by the individual integrators.</param>
/// <param name="isInherited">true to inherit this rule from a parent container.</param>
/// <param name="inheritanceFlags">The inheritance properties of the audit rule.</param>
/// <param name="propagationFlags">Whether inherited audit rules are automatically propagated. The propagation flags are ignored if <paramref name="inheritanceFlags" /> is set to <see cref="F:System.Security.AccessControl.InheritanceFlags.None" />.</param>
/// <param name="auditFlags">The conditions for which the rule is audited.</param>
/// <exception cref="T:System.ArgumentException">The value of the <paramref name="identity" /> parameter cannot be cast as a <see cref="T:System.Security.Principal.SecurityIdentifier" />, or the <paramref name="auditFlags" /> parameter contains an invalid value.</exception>
/// <exception cref="T:System.ArgumentOutOfRangeException">The value of the <paramref name="accessMask" /> parameter is zero, or the <paramref name="inheritanceFlags" /> or <paramref name="propagationFlags" /> parameters contain unrecognized flag values.</exception>
// Token: 0x06002CAF RID: 11439 RVA: 0x00092EB4 File Offset: 0x000910B4
protected AuditRule(IdentityReference identity, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AuditFlags auditFlags)
: base(identity, accessMask, isInherited, inheritanceFlags, propagationFlags)
{
if (!(identity is SecurityIdentifier))
{
throw new ArgumentException("identity");
}
if (accessMask == 0)
{
throw new ArgumentOutOfRangeException();
}
this.auditFlags = auditFlags;
}
/// <summary>Gets the audit flags for this audit rule.</summary>
/// <returns>A bitwise combination of the enumeration values. This combination specifies the audit conditions for this audit rule.</returns>
// Token: 0x170008B9 RID: 2233
// (get) Token: 0x06002CB0 RID: 11440 RVA: 0x00092EF0 File Offset: 0x000910F0
public AuditFlags AuditFlags
{
get
{
return this.auditFlags;
}
}
// Token: 0x04001196 RID: 4502
private AuditFlags auditFlags;
}
}
@@ -0,0 +1,116 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Determines access to securable objects. The derived classes <see cref="T:System.Security.AccessControl.AccessRule" /> and <see cref="T:System.Security.AccessControl.AuditRule" /> offer specializations for access and audit functionality.</summary>
// Token: 0x020004AC RID: 1196
public abstract class AuthorizationRule
{
// Token: 0x06002CB1 RID: 11441 RVA: 0x00092EF8 File Offset: 0x000910F8
internal AuthorizationRule()
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AuthorizationControl.AccessRule" /> class by using the specified values.</summary>
/// <param name="identity">The identity to which the access rule applies. This parameter must be an object that can be cast as a <see cref="T:System.Security.Principal.SecurityIdentifier" />.</param>
/// <param name="accessMask">The access mask of this rule. The access mask is a 32-bit collection of anonymous bits, the meaning of which is defined by the individual integrators.</param>
/// <param name="isInherited">true to inherit this rule from a parent container.</param>
/// <param name="inheritanceFlags">The inheritance properties of the access rule.</param>
/// <param name="propagationFlags">Whether inherited access rules are automatically propagated. The propagation flags are ignored if <paramref name="inheritanceFlags" /> is set to <see cref="F:System.Security.AccessControl.InheritanceFlags.None" />.</param>
/// <exception cref="T:System.ArgumentException">The value of the <paramref name="identity" /> parameter cannot be cast as a <see cref="T:System.Security.Principal.SecurityIdentifier" />.</exception>
/// <exception cref="T:System.ArgumentOutOfRangeException">The value of the <paramref name="accessMask" /> parameter is zero, or the <paramref name="inheritanceFlags" /> or <paramref name="propagationFlags" /> parameters contain unrecognized flag values.</exception>
// Token: 0x06002CB2 RID: 11442 RVA: 0x00092F00 File Offset: 0x00091100
protected internal AuthorizationRule(IdentityReference identity, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags)
{
if (!(identity is SecurityIdentifier))
{
throw new ArgumentException("identity");
}
if (accessMask == 0)
{
throw new ArgumentOutOfRangeException();
}
this.identity = identity;
this.accessMask = accessMask;
this.isInherited = isInherited;
this.inheritanceFlags = inheritanceFlags;
this.propagationFlags = propagationFlags;
}
/// <summary>Gets the <see cref="T:System.Security.Principal.IdentityReference" /> to which this rule applies.</summary>
/// <returns>The <see cref="T:System.Security.Principal.IdentityReference" /> to which this rule applies.</returns>
// Token: 0x170008BA RID: 2234
// (get) Token: 0x06002CB3 RID: 11443 RVA: 0x00092F5C File Offset: 0x0009115C
public IdentityReference IdentityReference
{
get
{
return this.identity;
}
}
/// <summary>Gets the value of flags that determine how this rule is inherited by child objects.</summary>
/// <returns>A bitwise combination of the enumeration values.</returns>
// Token: 0x170008BB RID: 2235
// (get) Token: 0x06002CB4 RID: 11444 RVA: 0x00092F64 File Offset: 0x00091164
public InheritanceFlags InheritanceFlags
{
get
{
return this.inheritanceFlags;
}
}
/// <summary>Gets a value indicating whether this rule is explicitly set or is inherited from a parent container object.</summary>
/// <returns>true if this rule is not explicitly set but is instead inherited from a parent container.</returns>
// Token: 0x170008BC RID: 2236
// (get) Token: 0x06002CB5 RID: 11445 RVA: 0x00092F6C File Offset: 0x0009116C
public bool IsInherited
{
get
{
return this.isInherited;
}
}
/// <summary>Gets the value of the propagation flags, which determine how inheritance of this rule is propagated to child objects. This property is significant only when the value of the <see cref="T:System.Security.AccessControl.InheritanceFlags" /> enumeration is not <see cref="F:System.Security.AccessControl.InheritanceFlags.None" />.</summary>
/// <returns>A bitwise combination of the enumeration values.</returns>
// Token: 0x170008BD RID: 2237
// (get) Token: 0x06002CB6 RID: 11446 RVA: 0x00092F74 File Offset: 0x00091174
public PropagationFlags PropagationFlags
{
get
{
return this.propagationFlags;
}
}
/// <summary>Gets the access mask for this rule.</summary>
/// <returns>The access mask for this rule.</returns>
// Token: 0x170008BE RID: 2238
// (get) Token: 0x06002CB7 RID: 11447 RVA: 0x00092F7C File Offset: 0x0009117C
protected internal int AccessMask
{
get
{
return this.accessMask;
}
}
// Token: 0x04001197 RID: 4503
private IdentityReference identity;
// Token: 0x04001198 RID: 4504
private int accessMask;
// Token: 0x04001199 RID: 4505
private bool isInherited;
// Token: 0x0400119A RID: 4506
private InheritanceFlags inheritanceFlags;
// Token: 0x0400119B RID: 4507
private PropagationFlags propagationFlags;
}
}
@@ -0,0 +1,37 @@
using System;
using System.Collections;
namespace System.Security.AccessControl
{
/// <summary>Represents a collection of <see cref="T:System.Security.AccessControl.AuthorizationRule" /> objects.</summary>
// Token: 0x020004AD RID: 1197
public sealed class AuthorizationRuleCollection : ReadOnlyCollectionBase
{
// Token: 0x06002CB8 RID: 11448 RVA: 0x00092F84 File Offset: 0x00091184
private AuthorizationRuleCollection(AuthorizationRule[] rules)
{
base.InnerList.AddRange(rules);
}
/// <summary>Gets the <see cref="T:System.Security.AccessControl.AuthorizationRule" /> object at the specified index of the collection.</summary>
/// <returns>The <see cref="T:System.Security.AccessControl.AuthorizationRule" /> object at the specified index.</returns>
/// <param name="index">The zero-based index of the <see cref="T:System.Security.AccessControl.AuthorizationRule" /> object to get.</param>
// Token: 0x170008BF RID: 2239
public AuthorizationRule this[int index]
{
get
{
return (AuthorizationRule)base.InnerList[index];
}
}
/// <summary>Copies the contents of the collection to an array.</summary>
/// <param name="rules">An array to which to copy the contents of the collection.</param>
/// <param name="index">The zero-based index from which to begin copying.</param>
// Token: 0x06002CBA RID: 11450 RVA: 0x00092FAC File Offset: 0x000911AC
public void CopyTo(AuthorizationRule[] rules, int index)
{
base.InnerList.CopyTo(rules, index);
}
}
}
@@ -0,0 +1,60 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Represents an access control entry (ACE).</summary>
// Token: 0x020004AE RID: 1198
public sealed class CommonAce : QualifiedAce
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.CommonAce" /> class.</summary>
/// <param name="flags">Flags that specify information about the inheritance, inheritance propagation, and auditing conditions for the new access control entry (ACE).</param>
/// <param name="qualifier">The use of the new ACE.</param>
/// <param name="accessMask">The access mask for the ACE.</param>
/// <param name="sid">The <see cref="T:System.Security.Principal.SecurityIdentifier" /> associated with the new ACE.</param>
/// <param name="isCallback">true to specify that the new ACE is a callback type ACE.</param>
/// <param name="opaque">Opaque data associated with the new ACE. Opaque data is allowed only for callback ACE types. The length of this array must not be greater than the return value of the <see cref="M:System.Security.AccessControl.CommonAce.MaxOpaqueLength(System.Boolean)" /> method.</param>
// Token: 0x06002CBB RID: 11451 RVA: 0x00092FBC File Offset: 0x000911BC
public CommonAce(AceFlags flags, AceQualifier qualifier, int accessMask, SecurityIdentifier sid, bool isCallback, byte[] opaque)
: base(InheritanceFlags.None, PropagationFlags.None, qualifier, isCallback, opaque)
{
base.AccessMask = accessMask;
base.SecurityIdentifier = sid;
}
/// <summary>Gets the length, in bytes, of the binary representation of the current <see cref="T:System.Security.AccessControl.CommonAce" /> object. Use this length with the <see cref="M:System.Security.AccessControl.CommonAce.GetBinaryForm(System.Byte[],System.Int32)" /> method before marshaling the ACL into a binary array.</summary>
/// <returns>The length, in bytes, of the binary representation of the current <see cref="T:System.Security.AccessControl.CommonAce" /> object.</returns>
// Token: 0x170008C0 RID: 2240
// (get) Token: 0x06002CBC RID: 11452 RVA: 0x00092FDC File Offset: 0x000911DC
[MonoTODO]
public override int BinaryLength
{
get
{
throw new NotImplementedException();
}
}
/// <summary>Marshals the contents of the <see cref="T:System.Security.AccessControl.CommonAce" /> object into the specified byte array beginning at the specified offset.</summary>
/// <param name="binaryForm">The byte array into which the contents of the <see cref="T:System.Security.AccessControl.CommonAce" /> object is marshaled.</param>
/// <param name="offset">The offset at which to start marshaling.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="offset" /> is negative or too high to allow the entire <see cref="T:System.Security.AccessControl.CommonAce" /> to be copied into the <paramref name="binaryForm" /> array.</exception>
// Token: 0x06002CBD RID: 11453 RVA: 0x00092FE4 File Offset: 0x000911E4
[MonoTODO]
public override void GetBinaryForm(byte[] binaryForm, int offset)
{
throw new NotImplementedException();
}
/// <summary>Gets the maximum allowed length of an opaque data BLOB for callback access control entries (ACEs).</summary>
/// <returns>The allowed length of an opaque data BLOB.</returns>
/// <param name="isCallback">true to specify that the <see cref="T:System.Security.AccessControl.CommonAce" /> object is a callback ACE type.</param>
// Token: 0x06002CBE RID: 11454 RVA: 0x00092FEC File Offset: 0x000911EC
[MonoTODO]
public static int MaxOpaqueLength(bool isCallback)
{
throw new NotImplementedException();
}
}
}
@@ -0,0 +1,158 @@
using System;
using System.Collections.Generic;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Represents an access control list (ACL) and is the base class for the <see cref="T:System.Security.AccessControl.DiscretionaryAcl" /> and <see cref="T:System.Security.AccessControl.SystemAcl" /> classes.</summary>
// Token: 0x020004AF RID: 1199
public abstract class CommonAcl : GenericAcl
{
// Token: 0x06002CBF RID: 11455 RVA: 0x00092FF4 File Offset: 0x000911F4
internal CommonAcl(bool isContainer, bool isDS, byte revision)
: this(isContainer, isDS, revision, 10)
{
}
// Token: 0x06002CC0 RID: 11456 RVA: 0x00093004 File Offset: 0x00091204
internal CommonAcl(bool isContainer, bool isDS, byte revision, int capacity)
{
this.is_container = isContainer;
this.is_ds = isDS;
this.revision = revision;
this.list = new List<GenericAce>(capacity);
}
/// <summary>Gets the length, in bytes, of the binary representation of the current <see cref="T:System.Security.AccessControl.CommonAcl" /> object. This length should be used before marshaling the access control list (ACL) into a binary array by using the <see cref="M:System.Security.AccessControl.CommonAcl.GetBinaryForm" /> method.</summary>
/// <returns>The length, in bytes, of the binary representation of the current <see cref="T:System.Security.AccessControl.CommonAcl" /> object.</returns>
// Token: 0x170008C1 RID: 2241
// (get) Token: 0x06002CC1 RID: 11457 RVA: 0x0009303C File Offset: 0x0009123C
[MonoTODO]
public sealed override int BinaryLength
{
get
{
throw new NotImplementedException();
}
}
/// <summary>Gets the number of access control entries (ACEs) in the current <see cref="T:System.Security.AccessControl.CommonAcl" /> object.</summary>
/// <returns>The number of ACEs in the current <see cref="T:System.Security.AccessControl.CommonAcl" /> object.</returns>
// Token: 0x170008C2 RID: 2242
// (get) Token: 0x06002CC2 RID: 11458 RVA: 0x00093044 File Offset: 0x00091244
public sealed override int Count
{
get
{
return this.list.Count;
}
}
/// <summary>Gets a Boolean value that specifies whether the access control entries (ACEs) in the current <see cref="T:System.Security.AccessControl.CommonAcl" /> object are in canonical order.</summary>
/// <returns>true if the ACEs in the current <see cref="T:System.Security.AccessControl.CommonAcl" /> object are in canonical order; otherwise, false.</returns>
// Token: 0x170008C3 RID: 2243
// (get) Token: 0x06002CC3 RID: 11459 RVA: 0x00093054 File Offset: 0x00091254
[MonoTODO]
public bool IsCanonical
{
get
{
throw new NotImplementedException();
}
}
/// <summary>Sets whether the <see cref="T:System.Security.AccessControl.CommonAcl" /> object is a container. </summary>
/// <returns>true if the current <see cref="T:System.Security.AccessControl.CommonAcl" /> object is a container.</returns>
// Token: 0x170008C4 RID: 2244
// (get) Token: 0x06002CC4 RID: 11460 RVA: 0x0009305C File Offset: 0x0009125C
public bool IsContainer
{
get
{
return this.is_container;
}
}
/// <summary>Sets whether the current <see cref="T:System.Security.AccessControl.CommonAcl" /> object is a directory object access control list (ACL).</summary>
/// <returns>true if the current <see cref="T:System.Security.AccessControl.CommonAcl" /> object is a directory object ACL.</returns>
// Token: 0x170008C5 RID: 2245
// (get) Token: 0x06002CC5 RID: 11461 RVA: 0x00093064 File Offset: 0x00091264
public bool IsDS
{
get
{
return this.is_ds;
}
}
/// <summary>Gets or sets the <see cref="T:System.Security.AccessControl.CommonAce" /> at the specified index.</summary>
/// <returns>The <see cref="T:System.Security.AccessControl.CommonAce" /> at the specified index.</returns>
/// <param name="index">The zero-based index of the <see cref="T:System.Security.AccessControl.CommonAce" /> to get or set.</param>
// Token: 0x170008C6 RID: 2246
public sealed override GenericAce this[int index]
{
get
{
return this.list[index];
}
set
{
this.list[index] = value;
}
}
/// <summary>Gets the revision level of the <see cref="T:System.Security.AccessControl.CommonAcl" />.</summary>
/// <returns>A byte value that specifies the revision level of the <see cref="T:System.Security.AccessControl.CommonAcl" />.</returns>
// Token: 0x170008C7 RID: 2247
// (get) Token: 0x06002CC8 RID: 11464 RVA: 0x0009308C File Offset: 0x0009128C
public sealed override byte Revision
{
get
{
return this.revision;
}
}
/// <summary>Marshals the contents of the <see cref="T:System.Security.AccessControl.CommonAcl" /> object into the specified byte array beginning at the specified offset.</summary>
/// <param name="binaryForm">The byte array into which the contents of the <see cref="T:System.Security.AccessControl.CommonAcl" /> is marshaled.</param>
/// <param name="offset">The offset at which to start marshaling.</param>
// Token: 0x06002CC9 RID: 11465 RVA: 0x00093094 File Offset: 0x00091294
[MonoTODO]
public sealed override void GetBinaryForm(byte[] binaryForm, int offset)
{
throw new NotImplementedException();
}
/// <summary>Removes all access control entries (ACEs) contained by this <see cref="T:System.Security.AccessControl.CommonAcl" /> object that are associated with the specified <see cref="T:System.Security.Principal.SecurityIdentifier" /> object.</summary>
/// <param name="sid">The <see cref="T:System.Security.Principal.SecurityIdentifier" /> object to check for.</param>
// Token: 0x06002CCA RID: 11466 RVA: 0x0009309C File Offset: 0x0009129C
[MonoTODO]
public void Purge(SecurityIdentifier sid)
{
throw new NotImplementedException();
}
/// <summary>Removes all inherited access control entries (ACEs) from this <see cref="T:System.Security.AccessControl.CommonAcl" /> object.</summary>
// Token: 0x06002CCB RID: 11467 RVA: 0x000930A4 File Offset: 0x000912A4
[MonoTODO]
public void RemoveInheritedAces()
{
throw new NotImplementedException();
}
// Token: 0x0400119C RID: 4508
private const int default_capacity = 10;
// Token: 0x0400119D RID: 4509
private bool is_container;
// Token: 0x0400119E RID: 4510
private bool is_ds;
// Token: 0x0400119F RID: 4511
private byte revision;
// Token: 0x040011A0 RID: 4512
private List<GenericAce> list;
}
}
@@ -0,0 +1,225 @@
using System;
using System.Collections.Generic;
namespace System.Security.AccessControl
{
/// <summary>Controls access to objects without direct manipulation of access control lists (ACLs). This class is the abstract base class for the <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> class.</summary>
// Token: 0x020004B0 RID: 1200
[MonoTODO("required for NativeObjectSecurity - implementation is missing")]
public abstract class CommonObjectSecurity : ObjectSecurity
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.CommonObjectSecurity" /> class.</summary>
/// <param name="isContainer">true if the new object is a container object.</param>
// Token: 0x06002CCC RID: 11468 RVA: 0x000930AC File Offset: 0x000912AC
protected CommonObjectSecurity(bool isContainer)
: base(isContainer, false)
{
}
/// <summary>Gets a collection of the access rules associated with the specified security identifier.</summary>
/// <returns>The collection of access rules associated with the specified <see cref="T:System.Security.Principal.SecurityIdentifier" /> object.</returns>
/// <param name="includeExplicit">true to include access rules explicitly set for the object.</param>
/// <param name="includeInherited">true to include inherited access rules.</param>
/// <param name="targetType">Specifies whether the security identifier for which to retrieve access rules is of type T:System.Security.Principal.SecurityIdentifier or type T:System.Security.Principal.NTAccount. The value of this parameter must be a type that can be translated to the <see cref="T:System.Security.Principal.SecurityIdentifier" /> type.</param>
/// <PermissionSet>
/// <IPermission class="System.Security.Permissions.ReflectionPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="MemberAccess" />
/// </PermissionSet>
// Token: 0x06002CCD RID: 11469 RVA: 0x000930CC File Offset: 0x000912CC
public AuthorizationRuleCollection GetAccessRules(bool includeExplicit, bool includeInherited, Type targetType)
{
throw new NotImplementedException();
}
/// <summary>Gets a collection of the audit rules associated with the specified security identifier.</summary>
/// <returns>The collection of audit rules associated with the specified <see cref="T:System.Security.Principal.SecurityIdentifier" /> object.</returns>
/// <param name="includeExplicit">true to include audit rules explicitly set for the object.</param>
/// <param name="includeInherited">true to include inherited audit rules.</param>
/// <param name="targetType">The security identifier for which to retrieve audit rules. This must be an object that can be cast as a <see cref="T:System.Security.Principal.SecurityIdentifier" /> object.</param>
/// <PermissionSet>
/// <IPermission class="System.Security.Permissions.ReflectionPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="MemberAccess" />
/// </PermissionSet>
// Token: 0x06002CCE RID: 11470 RVA: 0x000930D4 File Offset: 0x000912D4
public AuthorizationRuleCollection GetAuditRules(bool includeExplicit, bool includeInherited, Type targetType)
{
throw new NotImplementedException();
}
/// <summary>Adds the specified access rule to the Discretionary Access Control List (DACL) associated with this <see cref="T:System.Security.AccessControl.CommonObjectSecurity" /> object.</summary>
/// <param name="rule">The access rule to add.</param>
// Token: 0x06002CCF RID: 11471 RVA: 0x000930DC File Offset: 0x000912DC
protected void AddAccessRule(AccessRule rule)
{
this.access_rules.Add(rule);
base.AccessRulesModified = true;
}
/// <summary>Removes access rules that contain the same security identifier and access mask as the specified access rule from the Discretionary Access Control List (DACL) associated with this <see cref="T:System.Security.AccessControl.CommonObjectSecurity" /> object.</summary>
/// <returns>true if the access rule was successfully removed; otherwise, false.</returns>
/// <param name="rule">The access rule to remove.</param>
// Token: 0x06002CD0 RID: 11472 RVA: 0x000930F4 File Offset: 0x000912F4
protected bool RemoveAccessRule(AccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all access rules that have the same security identifier as the specified access rule from the Discretionary Access Control List (DACL) associated with this <see cref="T:System.Security.AccessControl.CommonObjectSecurity" /> object.</summary>
/// <param name="rule">The access rule to remove.</param>
// Token: 0x06002CD1 RID: 11473 RVA: 0x000930FC File Offset: 0x000912FC
protected void RemoveAccessRuleAll(AccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all access rules that exactly match the specified access rule from the Discretionary Access Control List (DACL) associated with this <see cref="T:System.Security.AccessControl.CommonObjectSecurity" /> object.</summary>
/// <param name="rule">The access rule to remove.</param>
// Token: 0x06002CD2 RID: 11474 RVA: 0x00093104 File Offset: 0x00091304
protected void RemoveAccessRuleSpecific(AccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all access rules in the Discretionary Access Control List (DACL) associated with this <see cref="T:System.Security.AccessControl.CommonObjectSecurity" /> object and then adds the specified access rule.</summary>
/// <param name="rule">The access rule to reset.</param>
// Token: 0x06002CD3 RID: 11475 RVA: 0x0009310C File Offset: 0x0009130C
protected void ResetAccessRule(AccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all access rules that contain the same security identifier and qualifier as the specified access rule in the Discretionary Access Control List (DACL) associated with this <see cref="T:System.Security.AccessControl.CommonObjectSecurity" /> object and then adds the specified access rule.</summary>
/// <param name="rule">The access rule to set.</param>
// Token: 0x06002CD4 RID: 11476 RVA: 0x00093114 File Offset: 0x00091314
protected void SetAccessRule(AccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Applies the specified modification to the Discretionary Access Control List (DACL) associated with this <see cref="T:System.Security.AccessControl.CommonObjectSecurity" /> object.</summary>
/// <returns>true if the DACL is successfully modified; otherwise, false.</returns>
/// <param name="modification">The modification to apply to the DACL.</param>
/// <param name="rule">The access rule to modify.</param>
/// <param name="modified">true if the DACL is successfully modified; otherwise, false.</param>
// Token: 0x06002CD5 RID: 11477 RVA: 0x0009311C File Offset: 0x0009131C
protected override bool ModifyAccess(AccessControlModification modification, AccessRule rule, out bool modified)
{
foreach (AccessRule accessRule in this.access_rules)
{
if (rule == accessRule)
{
switch (modification)
{
case AccessControlModification.Add:
this.AddAccessRule(rule);
break;
case AccessControlModification.Set:
this.SetAccessRule(rule);
break;
case AccessControlModification.Reset:
this.ResetAccessRule(rule);
break;
case AccessControlModification.Remove:
this.RemoveAccessRule(rule);
break;
case AccessControlModification.RemoveAll:
this.RemoveAccessRuleAll(rule);
break;
case AccessControlModification.RemoveSpecific:
this.RemoveAccessRuleSpecific(rule);
break;
}
modified = true;
return true;
}
}
modified = false;
return false;
}
/// <summary>Adds the specified audit rule to the System Access Control List (SACL) associated with this <see cref="T:System.Security.AccessControl.CommonObjectSecurity" /> object.</summary>
/// <param name="rule">The audit rule to add.</param>
// Token: 0x06002CD6 RID: 11478 RVA: 0x00093208 File Offset: 0x00091408
protected void AddAuditRule(AuditRule rule)
{
this.audit_rules.Add(rule);
base.AuditRulesModified = true;
}
/// <summary>Removes audit rules that contain the same security identifier and access mask as the specified audit rule from the System Access Control List (SACL) associated with this <see cref="T:System.Security.AccessControl.CommonObjectSecurity" /> object.</summary>
/// <returns>true if the audit rule was successfully removed; otherwise, false.</returns>
/// <param name="rule">The audit rule to remove.</param>
// Token: 0x06002CD7 RID: 11479 RVA: 0x00093220 File Offset: 0x00091420
protected bool RemoveAuditRule(AuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all audit rules that have the same security identifier as the specified audit rule from the System Access Control List (SACL) associated with this <see cref="T:System.Security.AccessControl.CommonObjectSecurity" /> object.</summary>
/// <param name="rule">The audit rule to remove.</param>
// Token: 0x06002CD8 RID: 11480 RVA: 0x00093228 File Offset: 0x00091428
protected void RemoveAuditRuleAll(AuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all audit rules that exactly match the specified audit rule from the System Access Control List (SACL) associated with this <see cref="T:System.Security.AccessControl.CommonObjectSecurity" /> object.</summary>
/// <param name="rule">The audit rule to remove.</param>
// Token: 0x06002CD9 RID: 11481 RVA: 0x00093230 File Offset: 0x00091430
protected void RemoveAuditRuleSpecific(AuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all audit rules that contain the same security identifier and qualifier as the specified audit rule in the System Access Control List (SACL) associated with this <see cref="T:System.Security.AccessControl.CommonObjectSecurity" /> object and then adds the specified audit rule.</summary>
/// <param name="rule">The audit rule to set.</param>
// Token: 0x06002CDA RID: 11482 RVA: 0x00093238 File Offset: 0x00091438
protected void SetAuditRule(AuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Applies the specified modification to the System Access Control List (SACL) associated with this <see cref="T:System.Security.AccessControl.CommonObjectSecurity" /> object.</summary>
/// <returns>true if the SACL is successfully modified; otherwise, false.</returns>
/// <param name="modification">The modification to apply to the SACL.</param>
/// <param name="rule">The audit rule to modify.</param>
/// <param name="modified">true if the SACL is successfully modified; otherwise, false.</param>
// Token: 0x06002CDB RID: 11483 RVA: 0x00093240 File Offset: 0x00091440
protected override bool ModifyAudit(AccessControlModification modification, AuditRule rule, out bool modified)
{
foreach (AuditRule auditRule in this.audit_rules)
{
if (rule == auditRule)
{
switch (modification)
{
case AccessControlModification.Add:
this.AddAuditRule(rule);
break;
case AccessControlModification.Set:
this.SetAuditRule(rule);
break;
case AccessControlModification.Remove:
this.RemoveAuditRule(rule);
break;
case AccessControlModification.RemoveAll:
this.RemoveAuditRuleAll(rule);
break;
case AccessControlModification.RemoveSpecific:
this.RemoveAuditRuleSpecific(rule);
break;
}
base.AuditRulesModified = true;
modified = true;
return true;
}
}
modified = false;
return false;
}
// Token: 0x040011A1 RID: 4513
private List<AccessRule> access_rules = new List<AccessRule>();
// Token: 0x040011A2 RID: 4514
private List<AuditRule> audit_rules = new List<AuditRule>();
}
}
@@ -0,0 +1,248 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Represents a security descriptor. A security descriptor includes an owner, a primary group, a Discretionary Access Control List (DACL), and a System Access Control List (SACL).</summary>
// Token: 0x020004B1 RID: 1201
public sealed class CommonSecurityDescriptor : GenericSecurityDescriptor
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> class from the specified <see cref="T:System.Security.AccessControl.RawSecurityDescriptor" /> object.</summary>
/// <param name="isContainer">true if the new security descriptor is associated with a container object.</param>
/// <param name="isDS">true if the new security descriptor is associated with a directory object.</param>
/// <param name="rawSecurityDescriptor">The <see cref="T:System.Security.AccessControl.RawSecurityDescriptor" /> object from which to create the new <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object.</param>
// Token: 0x06002CDC RID: 11484 RVA: 0x00093324 File Offset: 0x00091524
public CommonSecurityDescriptor(bool isContainer, bool isDS, RawSecurityDescriptor rawSecurityDescriptor)
{
throw new NotImplementedException();
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> class from the specified Security Descriptor Definition Language (SDDL) string.</summary>
/// <param name="isContainer">true if the new security descriptor is associated with a container object.</param>
/// <param name="isDS">true if the new security descriptor is associated with a directory object.</param>
/// <param name="sddlForm">The SDDL string from which to create the new <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object.</param>
// Token: 0x06002CDD RID: 11485 RVA: 0x00093334 File Offset: 0x00091534
public CommonSecurityDescriptor(bool isContainer, bool isDS, string sddlForm)
{
throw new NotImplementedException();
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> class from the specified array of byte values.</summary>
/// <param name="isContainer">true if the new security descriptor is associated with a container object.</param>
/// <param name="isDS">true if the new security descriptor is associated with a directory object.</param>
/// <param name="binaryForm">The array of byte values from which to create the new <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object.</param>
/// <param name="offset">The offset in the <paramref name="binaryForm" /> array at which to begin copying.</param>
// Token: 0x06002CDE RID: 11486 RVA: 0x00093344 File Offset: 0x00091544
public CommonSecurityDescriptor(bool isContainer, bool isDS, byte[] binaryForm, int offset)
{
throw new NotImplementedException();
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> class from the specified information.</summary>
/// <param name="isContainer">true if the new security descriptor is associated with a container object.</param>
/// <param name="isDS">true if the new security descriptor is associated with a directory object.</param>
/// <param name="flags">Flags that specify behavior of the new <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object.</param>
/// <param name="owner">The owner for the new <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object.</param>
/// <param name="group">The primary group for the new <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object.</param>
/// <param name="systemAcl">The System Access Control List (SACL) for the new <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object.</param>
/// <param name="discretionaryAcl">The Discretionary Access Control List (DACL) for the new <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object.</param>
// Token: 0x06002CDF RID: 11487 RVA: 0x00093354 File Offset: 0x00091554
public CommonSecurityDescriptor(bool isContainer, bool isDS, ControlFlags flags, SecurityIdentifier owner, SecurityIdentifier group, SystemAcl systemAcl, DiscretionaryAcl discretionaryAcl)
{
this.isContainer = isContainer;
this.isDS = isDS;
this.flags = flags;
this.owner = owner;
this.group = group;
this.systemAcl = systemAcl;
this.discretionaryAcl = discretionaryAcl;
throw new NotImplementedException();
}
/// <summary>Gets values that specify behavior of the <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object.</summary>
/// <returns>One or more values of the <see cref="T:System.Security.AccessControl.ControlFlags" /> enumeration combined with a logical OR operation.</returns>
// Token: 0x170008C8 RID: 2248
// (get) Token: 0x06002CE0 RID: 11488 RVA: 0x000933A4 File Offset: 0x000915A4
public override ControlFlags ControlFlags
{
get
{
return this.flags;
}
}
/// <summary>Gets or sets the discretionary access control list (DACL) for this <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object. The DACL contains access rules.</summary>
/// <returns>The DACL for this <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object.</returns>
// Token: 0x170008C9 RID: 2249
// (get) Token: 0x06002CE1 RID: 11489 RVA: 0x000933AC File Offset: 0x000915AC
// (set) Token: 0x06002CE2 RID: 11490 RVA: 0x000933B4 File Offset: 0x000915B4
public DiscretionaryAcl DiscretionaryAcl
{
get
{
return this.discretionaryAcl;
}
set
{
if (value == null)
{
}
this.discretionaryAcl = value;
}
}
/// <summary>Gets or sets the primary group for this <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object.</summary>
/// <returns>The primary group for this <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object.</returns>
// Token: 0x170008CA RID: 2250
// (get) Token: 0x06002CE3 RID: 11491 RVA: 0x000933C4 File Offset: 0x000915C4
// (set) Token: 0x06002CE4 RID: 11492 RVA: 0x000933CC File Offset: 0x000915CC
public override SecurityIdentifier Group
{
get
{
return this.group;
}
set
{
this.group = value;
}
}
/// <summary>Gets a Boolean value that specifies whether the object associated with this <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object is a container object.</summary>
/// <returns>true if the object associated with this <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object is a container object; otherwise, false.</returns>
// Token: 0x170008CB RID: 2251
// (get) Token: 0x06002CE5 RID: 11493 RVA: 0x000933D8 File Offset: 0x000915D8
public bool IsContainer
{
get
{
return this.isContainer;
}
}
/// <summary>Gets a Boolean value that specifies whether the Discretionary Access Control List (DACL) associated with this <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object is in canonical order.</summary>
/// <returns>true if the DACL associated with this <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object is in canonical order; otherwise, false.</returns>
// Token: 0x170008CC RID: 2252
// (get) Token: 0x06002CE6 RID: 11494 RVA: 0x000933E0 File Offset: 0x000915E0
public bool IsDiscretionaryAclCanonical
{
get
{
throw new NotImplementedException();
}
}
/// <summary>Gets a Boolean value that specifies whether the object associated with this <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object is a directory object.</summary>
/// <returns>true if the object associated with this <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object is a directory object; otherwise, false.</returns>
// Token: 0x170008CD RID: 2253
// (get) Token: 0x06002CE7 RID: 11495 RVA: 0x000933E8 File Offset: 0x000915E8
public bool IsDS
{
get
{
return this.isDS;
}
}
/// <summary>Gets a Boolean value that specifies whether the System Access Control List (SACL) associated with this <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object is in canonical order.</summary>
/// <returns>true if the SACL associated with this <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object is in canonical order; otherwise, false.</returns>
// Token: 0x170008CE RID: 2254
// (get) Token: 0x06002CE8 RID: 11496 RVA: 0x000933F0 File Offset: 0x000915F0
public bool IsSystemAclCanonical
{
get
{
throw new NotImplementedException();
}
}
/// <summary>Gets or sets the owner of the object associated with this <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object.</summary>
/// <returns>The owner of the object associated with this <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object.</returns>
// Token: 0x170008CF RID: 2255
// (get) Token: 0x06002CE9 RID: 11497 RVA: 0x000933F8 File Offset: 0x000915F8
// (set) Token: 0x06002CEA RID: 11498 RVA: 0x00093400 File Offset: 0x00091600
public override SecurityIdentifier Owner
{
get
{
return this.owner;
}
set
{
this.owner = value;
}
}
/// <summary>Gets or sets the System Access Control List (SACL) for this <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object. The SACL contains audit rules.</summary>
/// <returns>The SACL for this <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object.</returns>
// Token: 0x170008D0 RID: 2256
// (get) Token: 0x06002CEB RID: 11499 RVA: 0x0009340C File Offset: 0x0009160C
// (set) Token: 0x06002CEC RID: 11500 RVA: 0x00093414 File Offset: 0x00091614
public SystemAcl SystemAcl
{
get
{
return this.systemAcl;
}
set
{
this.systemAcl = value;
}
}
/// <summary>Removes all access rules for the specified security identifier from the Discretionary Access Control List (DACL) associated with this <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object.</summary>
/// <param name="sid">The security identifier for which to remove access rules.</param>
// Token: 0x06002CED RID: 11501 RVA: 0x00093420 File Offset: 0x00091620
public void PurgeAccessControl(SecurityIdentifier sid)
{
throw new NotImplementedException();
}
/// <summary>Removes all audit rules for the specified security identifier from the System Access Control List (SACL) associated with this <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object.</summary>
/// <param name="sid">The security identifier for which to remove audit rules.</param>
// Token: 0x06002CEE RID: 11502 RVA: 0x00093428 File Offset: 0x00091628
public void PurgeAudit(SecurityIdentifier sid)
{
throw new NotImplementedException();
}
/// <summary>Sets the inheritance protection for the Discretionary Access Control List (DACL) associated with this <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object. DACLs that are protected do not inherit access rules from parent containers.</summary>
/// <param name="isProtected">true to protect the DACL from inheritance.</param>
/// <param name="preserveInheritance">true to keep inherited access rules in the DACL; false to remove inherited access rules from the DACL.</param>
// Token: 0x06002CEF RID: 11503 RVA: 0x00093430 File Offset: 0x00091630
public void SetDiscretionaryAclProtection(bool isProtected, bool preserveInheritance)
{
throw new NotImplementedException();
}
/// <summary>Sets the inheritance protection for the System Access Control List (SACL) associated with this <see cref="T:System.Security.AccessControl.CommonSecurityDescriptor" /> object. SACLs that are protected do not inherit audit rules from parent containers.</summary>
/// <param name="isProtected">true to protect the SACL from inheritance.</param>
/// <param name="preserveInheritance">true to keep inherited audit rules in the SACL; false to remove inherited audit rules from the SACL.</param>
// Token: 0x06002CF0 RID: 11504 RVA: 0x00093438 File Offset: 0x00091638
public void SetSystemAclProtection(bool isProtected, bool preserveInheritance)
{
throw new NotImplementedException();
}
// Token: 0x040011A3 RID: 4515
private bool isContainer;
// Token: 0x040011A4 RID: 4516
private bool isDS;
// Token: 0x040011A5 RID: 4517
private ControlFlags flags;
// Token: 0x040011A6 RID: 4518
private SecurityIdentifier owner;
// Token: 0x040011A7 RID: 4519
private SecurityIdentifier group;
// Token: 0x040011A8 RID: 4520
private SystemAcl systemAcl;
// Token: 0x040011A9 RID: 4521
private DiscretionaryAcl discretionaryAcl;
}
}
@@ -0,0 +1,70 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Represents a compound Access Control Entry (ACE).</summary>
// Token: 0x020004B2 RID: 1202
public sealed class CompoundAce : KnownAce
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.CompoundAce" /> class.</summary>
/// <param name="flags">Contains flags that specify information about the inheritance, inheritance propagation, and auditing conditions for the new Access Control Entry (ACE).</param>
/// <param name="accessMask">The access mask for the ACE.</param>
/// <param name="compoundAceType">A value from the <see cref="T:System.Security.AccessControl.CompoundAceType" /> enumeration.</param>
/// <param name="sid">The <see cref="T:System.Security.Principal.SecurityIdentifier" /> associated with the new ACE.</param>
// Token: 0x06002CF1 RID: 11505 RVA: 0x00093440 File Offset: 0x00091640
public CompoundAce(AceFlags flags, int accessMask, CompoundAceType compoundAceType, SecurityIdentifier sid)
: base(InheritanceFlags.None, PropagationFlags.None)
{
this.compound_ace_type = compoundAceType;
base.AceFlags = flags;
base.AccessMask = accessMask;
base.SecurityIdentifier = sid;
}
/// <summary>Gets the length, in bytes, of the binary representation of the current <see cref="T:System.Security.AccessControl.CompoundAce" /> object. This length should be used before marshaling the ACL into a binary array with the <see cref="M:System.Security.AccessControl. CompoundAce.GetBinaryForm" /> method.</summary>
/// <returns>The length, in bytes, of the binary representation of the current <see cref="T:System.Security.AccessControl. CompoundAce" /> object.</returns>
// Token: 0x170008D1 RID: 2257
// (get) Token: 0x06002CF2 RID: 11506 RVA: 0x00093474 File Offset: 0x00091674
[MonoTODO]
public override int BinaryLength
{
get
{
throw new NotImplementedException();
}
}
/// <summary>Gets or sets the type of this <see cref="T:System.Security.AccessControl. CompoundAce" /> object.</summary>
/// <returns>The type of this <see cref="T:System.Security.AccessControl. CompoundAce" /> object.</returns>
// Token: 0x170008D2 RID: 2258
// (get) Token: 0x06002CF3 RID: 11507 RVA: 0x0009347C File Offset: 0x0009167C
// (set) Token: 0x06002CF4 RID: 11508 RVA: 0x00093484 File Offset: 0x00091684
public CompoundAceType CompoundAceType
{
get
{
return this.compound_ace_type;
}
set
{
this.compound_ace_type = value;
}
}
/// <summary>Marshals the contents of the <see cref="T:System.Security.AccessControl.CompoundAce" /> object into the specified byte array beginning at the specified offset.</summary>
/// <param name="binaryForm">The byte array into which the contents of the <see cref="T:System.Security.AccessControl. CompoundAce" /> is marshaled.</param>
/// <param name="offset">The offset at which to start marshaling.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="offset" /> is negative or too high to allow the entire <see cref="T:System.Security.AccessControl. CompoundAce" /> to be copied into <paramref name="array" />.</exception>
// Token: 0x06002CF5 RID: 11509 RVA: 0x00093490 File Offset: 0x00091690
[MonoTODO]
public override void GetBinaryForm(byte[] binaryForm, int offset)
{
throw new NotImplementedException();
}
// Token: 0x040011AA RID: 4522
private CompoundAceType compound_ace_type;
}
}
@@ -0,0 +1,13 @@
using System;
namespace System.Security.AccessControl
{
/// <summary>Specifies the type of a <see cref="T:System.Security.AccessControl.CompoundAce" /> object.</summary>
// Token: 0x020004B3 RID: 1203
public enum CompoundAceType
{
/// <summary>The <see cref="T:System.Security.AccessControl.CompoundAce" /> object is used for impersonation.</summary>
// Token: 0x040011AC RID: 4524
Impersonation = 1
}
}
@@ -0,0 +1,62 @@
using System;
namespace System.Security.AccessControl
{
/// <summary>These flags affect the security descriptor behavior.</summary>
// Token: 0x020004B4 RID: 1204
[Flags]
public enum ControlFlags
{
/// <summary>No control flags.</summary>
// Token: 0x040011AE RID: 4526
None = 0,
/// <summary>Specifies that the owner <see cref="T:System.Security.Principal.SecurityIdentifier" /> was obtained by a defaulting mechanism. Set by resource managers only; should not be set by callers. </summary>
// Token: 0x040011AF RID: 4527
OwnerDefaulted = 1,
/// <summary>Specifies that the group <see cref="T:System.Security.Principal.SecurityIdentifier" /> was obtained by a defaulting mechanism. Set by resource managers only; should not be set by callers.</summary>
// Token: 0x040011B0 RID: 4528
GroupDefaulted = 2,
/// <summary>Specifies that the DACL is not null. Set by resource managers or users. </summary>
// Token: 0x040011B1 RID: 4529
DiscretionaryAclPresent = 4,
/// <summary>Specifies that the DACL was obtained by a defaulting mechanism. Set by resource managers only.</summary>
// Token: 0x040011B2 RID: 4530
DiscretionaryAclDefaulted = 8,
/// <summary>Specifies that the SACL is not null. Set by resource managers or users.</summary>
// Token: 0x040011B3 RID: 4531
SystemAclPresent = 16,
/// <summary>Specifies that the SACL was obtained by a defaulting mechanism. Set by resource managers only.</summary>
// Token: 0x040011B4 RID: 4532
SystemAclDefaulted = 32,
/// <summary>Ignored.</summary>
// Token: 0x040011B5 RID: 4533
DiscretionaryAclUntrusted = 64,
/// <summary>Ignored.</summary>
// Token: 0x040011B6 RID: 4534
ServerSecurity = 128,
/// <summary>Ignored.</summary>
// Token: 0x040011B7 RID: 4535
DiscretionaryAclAutoInheritRequired = 256,
/// <summary>Ignored.</summary>
// Token: 0x040011B8 RID: 4536
SystemAclAutoInheritRequired = 512,
/// <summary>Specifies that the Discretionary Access Control List (DACL) has been automatically inherited from the parent. Set by resource managers only.</summary>
// Token: 0x040011B9 RID: 4537
DiscretionaryAclAutoInherited = 1024,
/// <summary>Specifies that the System Access Control List (SACL) has been automatically inherited from the parent. Set by resource managers only.</summary>
// Token: 0x040011BA RID: 4538
SystemAclAutoInherited = 2048,
/// <summary>Specifies that the resource manager prevents auto-inheritance. Set by resource managers or users. </summary>
// Token: 0x040011BB RID: 4539
DiscretionaryAclProtected = 4096,
/// <summary>Specifies that the resource manager prevents auto-inheritance. Set by resource managers or users.</summary>
// Token: 0x040011BC RID: 4540
SystemAclProtected = 8192,
/// <summary>Specifies that the contents of the Reserved field are valid.</summary>
// Token: 0x040011BD RID: 4541
RMControlValid = 16384,
/// <summary>Specifies that the security descriptor binary representation is in the self-relative format. This flag is always set.</summary>
// Token: 0x040011BE RID: 4542
SelfRelative = 32768
}
}
@@ -0,0 +1,46 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Represents an access rule for a cryptographic key. An access rule represents a combination of a user's identity, an access mask, and an access control type (allow or deny). An access rule object also contains information about the how the rule is inherited by child objects and how that inheritance is propagated.</summary>
// Token: 0x020004B5 RID: 1205
public sealed class CryptoKeyAccessRule : AccessRule
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.CryptoKeyAccessRule" /> class using the specified values. </summary>
/// <param name="identity">The identity to which the access rule applies. This parameter must be an object that can be cast as a <see cref="T:System.Security.Principal.SecurityIdentifier" />.</param>
/// <param name="cryptoKeyRights">The cryptographic key operation to which this access rule controls access.</param>
/// <param name="type">The valid access control type.</param>
// Token: 0x06002CF6 RID: 11510 RVA: 0x00093498 File Offset: 0x00091698
public CryptoKeyAccessRule(IdentityReference identity, CryptoKeyRights cryptoKeyRights, AccessControlType type)
: base(identity, 0, false, InheritanceFlags.None, PropagationFlags.None, AccessControlType.Allow)
{
this.rights = cryptoKeyRights;
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.CryptoKeyAccessRule" /> class using the specified values.</summary>
/// <param name="identity">The identity to which the access rule applies.</param>
/// <param name="cryptoKeyRights">The cryptographic key operation to which this access rule controls access.</param>
/// <param name="type">The valid access control type.</param>
// Token: 0x06002CF7 RID: 11511 RVA: 0x000934B0 File Offset: 0x000916B0
public CryptoKeyAccessRule(string identity, CryptoKeyRights cryptoKeyRights, AccessControlType type)
: this(new SecurityIdentifier(identity), cryptoKeyRights, type)
{
}
/// <summary>Gets the cryptographic key operation to which this access rule controls access.</summary>
/// <returns>The cryptographic key operation to which this access rule controls access.</returns>
// Token: 0x170008D3 RID: 2259
// (get) Token: 0x06002CF8 RID: 11512 RVA: 0x000934C0 File Offset: 0x000916C0
public CryptoKeyRights CryptoKeyRights
{
get
{
return this.rights;
}
}
// Token: 0x040011BF RID: 4543
private CryptoKeyRights rights;
}
}
@@ -0,0 +1,46 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Represents an audit rule for a cryptographic key. An audit rule represents a combination of a user's identity and an access mask. An audit rule also contains information about the how the rule is inherited by child objects, how that inheritance is propagated, and for what conditions it is audited.</summary>
// Token: 0x020004B6 RID: 1206
public sealed class CryptoKeyAuditRule : AuditRule
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.CryptoKeyAuditRule" /> class using the specified values. </summary>
/// <param name="identity">The identity to which the audit rule applies. This parameter must be an object that can be cast as a <see cref="T:System.Security.Principal.SecurityIdentifier" />.</param>
/// <param name="cryptoKeyRights">The cryptographic key operation for which this audit rule generates audits.</param>
/// <param name="flags">The conditions that generate audits.</param>
// Token: 0x06002CF9 RID: 11513 RVA: 0x000934C8 File Offset: 0x000916C8
public CryptoKeyAuditRule(IdentityReference identity, CryptoKeyRights cryptoKeyRights, AuditFlags flags)
: base(identity, 0, false, InheritanceFlags.None, PropagationFlags.None, flags)
{
this.rights = cryptoKeyRights;
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.CryptoKeyAuditRule" /> class using the specified values. </summary>
/// <param name="identity">The identity to which the audit rule applies.</param>
/// <param name="cryptoKeyRights">The cryptographic key operation for which this audit rule generates audits.</param>
/// <param name="flags">The conditions that generate audits.</param>
// Token: 0x06002CFA RID: 11514 RVA: 0x000934E0 File Offset: 0x000916E0
public CryptoKeyAuditRule(string identity, CryptoKeyRights cryptoKeyRights, AuditFlags flags)
: this(new SecurityIdentifier(identity), cryptoKeyRights, flags)
{
}
/// <summary>Gets the cryptographic key operation for which this audit rule generates audits.</summary>
/// <returns>The cryptographic key operation for which this audit rule generates audits.</returns>
// Token: 0x170008D4 RID: 2260
// (get) Token: 0x06002CFB RID: 11515 RVA: 0x000934F0 File Offset: 0x000916F0
public CryptoKeyRights CryptoKeyRights
{
get
{
return this.rights;
}
}
// Token: 0x040011C0 RID: 4544
private CryptoKeyRights rights;
}
}
@@ -0,0 +1,59 @@
using System;
namespace System.Security.AccessControl
{
/// <summary>Specifies the cryptographic key operation for which an authorization rule controls access or auditing.</summary>
// Token: 0x020004B7 RID: 1207
[Flags]
public enum CryptoKeyRights
{
/// <summary>Read the key data.</summary>
// Token: 0x040011C2 RID: 4546
ReadData = 1,
/// <summary>Write key data.</summary>
// Token: 0x040011C3 RID: 4547
WriteData = 2,
/// <summary>Read extended attributes of the key.</summary>
// Token: 0x040011C4 RID: 4548
ReadExtendedAttributes = 8,
/// <summary>Write extended attributes of the key.</summary>
// Token: 0x040011C5 RID: 4549
WriteExtendedAttributes = 16,
/// <summary>Read attributes of the key.</summary>
// Token: 0x040011C6 RID: 4550
ReadAttributes = 128,
/// <summary>Write attributes of the key.</summary>
// Token: 0x040011C7 RID: 4551
WriteAttributes = 256,
/// <summary>Delete the key.</summary>
// Token: 0x040011C8 RID: 4552
Delete = 65536,
/// <summary>Read permissions for the key.</summary>
// Token: 0x040011C9 RID: 4553
ReadPermissions = 131072,
/// <summary>Change permissions for the key.</summary>
// Token: 0x040011CA RID: 4554
ChangePermissions = 262144,
/// <summary>Take ownership of the key.</summary>
// Token: 0x040011CB RID: 4555
TakeOwnership = 524288,
/// <summary>Use the key for synchronization.</summary>
// Token: 0x040011CC RID: 4556
Synchronize = 1048576,
/// <summary>Full control of the key.</summary>
// Token: 0x040011CD RID: 4557
FullControl = 2032027,
/// <summary>A combination of <see cref="F:System.Security.AccessControl.CryptoKeyRights.GenericRead" /> and <see cref="F:System.Security.AccessControl.CryptoKeyRights.GenericWrite" />.</summary>
// Token: 0x040011CE RID: 4558
GenericAll = 268435456,
/// <summary>Not used.</summary>
// Token: 0x040011CF RID: 4559
GenericExecute = 536870912,
/// <summary>Write the key data, extended attributes of the key, attributes of the key, and permissions for the key.</summary>
// Token: 0x040011D0 RID: 4560
GenericWrite = 1073741824,
/// <summary>Read the key data, extended attributes of the key, attributes of the key, and permissions for the key.</summary>
// Token: 0x040011D1 RID: 4561
GenericRead = -2147483648
}
}
@@ -0,0 +1,190 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Provides the ability to control access to a cryptographic key object without direct manipulation of an Access Control List (ACL).</summary>
// Token: 0x020004B8 RID: 1208
public sealed class CryptoKeySecurity : NativeObjectSecurity
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.CryptoKeySecurity" /> class.</summary>
// Token: 0x06002CFC RID: 11516 RVA: 0x000934F8 File Offset: 0x000916F8
[MonoTODO]
public CryptoKeySecurity()
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.CryptoKeySecurity" /> class by using the specified security descriptor.</summary>
/// <param name="securityDescriptor">The security descriptor from which to create the new <see cref="T:System.Security.AccessControl.CryptoKeySecurity" /> object.</param>
// Token: 0x06002CFD RID: 11517 RVA: 0x00093500 File Offset: 0x00091700
[MonoTODO]
public CryptoKeySecurity(CommonSecurityDescriptor securityDescriptor)
{
}
/// <summary>Gets the <see cref="T:System.Type" /> of the securable object associated with this <see cref="T:System.Security.AccessControl.CryptoKeySecurity" /> object.</summary>
/// <returns>The type of the securable object associated with this <see cref="T:System.Security.AccessControl.CryptoKeySecurity" /> object.</returns>
// Token: 0x170008D5 RID: 2261
// (get) Token: 0x06002CFE RID: 11518 RVA: 0x00093508 File Offset: 0x00091708
public override Type AccessRightType
{
get
{
return typeof(CryptoKeyRights);
}
}
/// <summary>Gets the <see cref="T:System.Type" /> of the object associated with the access rules of this <see cref="T:System.Security.AccessControl.CryptoKeySecurity" /> object. The <see cref="T:System.Type" /> object must be an object that can be cast as a <see cref="T:System.Security.Principal.SecurityIdentifier" /> object.</summary>
/// <returns>The type of the object associated with the access rules of this <see cref="T:System.Security.AccessControl.CryptoKeySecurity" /> object.</returns>
// Token: 0x170008D6 RID: 2262
// (get) Token: 0x06002CFF RID: 11519 RVA: 0x00093514 File Offset: 0x00091714
public override Type AccessRuleType
{
get
{
return typeof(CryptoKeyAccessRule);
}
}
/// <summary>Gets the <see cref="T:System.Type" /> object associated with the audit rules of this <see cref="T:System.Security.AccessControl.CryptoKeySecurity" /> object. The <see cref="T:System.Type" /> object must be an object that can be cast as a <see cref="T:System.Security.Principal.SecurityIdentifier" /> object.</summary>
/// <returns>The type of the object associated with the audit rules of this <see cref="T:System.Security.AccessControl.CryptoKeySecurity" /> object.</returns>
// Token: 0x170008D7 RID: 2263
// (get) Token: 0x06002D00 RID: 11520 RVA: 0x00093520 File Offset: 0x00091720
public override Type AuditRuleType
{
get
{
return typeof(CryptoKeyAuditRule);
}
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.AccessRule" /> class with the specified values.</summary>
/// <returns>The <see cref="T:System.Security.AccessControl.AccessRule" /> object that this method creates.</returns>
/// <param name="identityReference">The identity to which the access rule applies. It must be an object that can be cast as a <see cref="T:System.Security.Principal.SecurityIdentifier" />.</param>
/// <param name="accessMask">The access mask of this rule. The access mask is a 32-bit collection of anonymous bits, the meaning of which is defined by the individual integrators.</param>
/// <param name="isInherited">true if this rule is inherited from a parent container.</param>
/// <param name="inheritanceFlags">Specifies the inheritance properties of the access rule.</param>
/// <param name="propagationFlags">Specifies whether inherited access rules are automatically propagated. The propagation flags are ignored if <paramref name="inheritanceFlags" /> is set to <see cref="F:System.Security.AccessControl.InheritanceFlags.None" />.</param>
/// <param name="type">Specifies the valid access control type.</param>
// Token: 0x06002D01 RID: 11521 RVA: 0x0009352C File Offset: 0x0009172C
public sealed override AccessRule AccessRuleFactory(IdentityReference identityReference, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType type)
{
return new CryptoKeyAccessRule(identityReference, (CryptoKeyRights)accessMask, type);
}
/// <summary>Adds the specified access rule to the Discretionary Access Control List (DACL) associated with this <see cref="T:System.Security.AccessControl.CryptoKeySecurity" /> object.</summary>
/// <param name="rule">The access rule to add.</param>
// Token: 0x06002D02 RID: 11522 RVA: 0x00093538 File Offset: 0x00091738
[MonoTODO]
public void AddAccessRule(CryptoKeyAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes access rules that contain the same security identifier and access mask as the specified access rule from the Discretionary Access Control List (DACL) associated with this <see cref="T:System.Security.AccessControl.CryptoKeySecurity" /> object.</summary>
/// <returns>true if the access rule was successfully removed; otherwise, false.</returns>
/// <param name="rule">The access rule to remove.</param>
// Token: 0x06002D03 RID: 11523 RVA: 0x00093540 File Offset: 0x00091740
[MonoTODO]
public bool RemoveAccessRule(CryptoKeyAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all access rules that have the same security identifier as the specified access rule from the Discretionary Access Control List (DACL) associated with this <see cref="T:System.Security.AccessControl.CryptoKeySecurity" /> object.</summary>
/// <param name="rule">The access rule to remove.</param>
// Token: 0x06002D04 RID: 11524 RVA: 0x00093548 File Offset: 0x00091748
[MonoTODO]
public void RemoveAccessRuleAll(CryptoKeyAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all access rules that exactly match the specified access rule from the Discretionary Access Control List (DACL) associated with this <see cref="T:System.Security.AccessControl.CryptoKeySecurity" /> object.</summary>
/// <param name="rule">The access rule to remove.</param>
// Token: 0x06002D05 RID: 11525 RVA: 0x00093550 File Offset: 0x00091750
[MonoTODO]
public void RemoveAccessRuleSpecific(CryptoKeyAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all access rules in the Discretionary Access Control List (DACL) associated with this <see cref="T:System.Security.AccessControl.CryptoKeySecurity" /> object and then adds the specified access rule.</summary>
/// <param name="rule">The access rule to reset.</param>
// Token: 0x06002D06 RID: 11526 RVA: 0x00093558 File Offset: 0x00091758
[MonoTODO]
public void ResetAccessRule(CryptoKeyAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all access rules that contain the same security identifier and qualifier as the specified access rule in the Discretionary Access Control List (DACL) associated with this <see cref="T:System.Security.AccessControl.CryptoKeySecurity" /> object and then adds the specified access rule.</summary>
/// <param name="rule">The access rule to set.</param>
// Token: 0x06002D07 RID: 11527 RVA: 0x00093560 File Offset: 0x00091760
[MonoTODO]
public void SetAccessRule(CryptoKeyAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.AuditRule" /> class with the specified values.</summary>
/// <returns>The <see cref="T:System.Security.AccessControl.AuditRule" /> object that this method creates.</returns>
/// <param name="identityReference">The identity to which the audit rule applies. It must be an object that can be cast as a <see cref="T:System.Security.Principal.SecurityIdentifier" />.</param>
/// <param name="accessMask">The access mask of this rule. The access mask is a 32-bit collection of anonymous bits, the meaning of which is defined by the individual integrators.</param>
/// <param name="isInherited">true if this rule is inherited from a parent container.</param>
/// <param name="inheritanceFlags">Specifies the inheritance properties of the audit rule.</param>
/// <param name="propagationFlags">Specifies whether inherited audit rules are automatically propagated. The propagation flags are ignored if <paramref name="inheritanceFlags" /> is set to <see cref="F:System.Security.AccessControl.InheritanceFlags.None" />.</param>
/// <param name="flags">Specifies the conditions for which the rule is audited.</param>
// Token: 0x06002D08 RID: 11528 RVA: 0x00093568 File Offset: 0x00091768
public sealed override AuditRule AuditRuleFactory(IdentityReference identityReference, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AuditFlags flags)
{
return new CryptoKeyAuditRule(identityReference, (CryptoKeyRights)accessMask, flags);
}
/// <summary>Adds the specified audit rule to the System Access Control List (SACL) associated with this <see cref="T:System.Security.AccessControl.CryptoKeySecurity" /> object.</summary>
/// <param name="rule">The audit rule to add.</param>
// Token: 0x06002D09 RID: 11529 RVA: 0x00093574 File Offset: 0x00091774
[MonoTODO]
public void AddAuditRule(CryptoKeyAuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes audit rules that contain the same security identifier and access mask as the specified audit rule from the System Access Control List (SACL) associated with this <see cref="T:System.Security.AccessControl.CryptoKeySecurity" /> object.</summary>
/// <returns>true if the audit rule was successfully removed; otherwise, false.</returns>
/// <param name="rule">The audit rule to remove.</param>
// Token: 0x06002D0A RID: 11530 RVA: 0x0009357C File Offset: 0x0009177C
[MonoTODO]
public bool RemoveAuditRule(CryptoKeyAuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all audit rules that have the same security identifier as the specified audit rule from the System Access Control List (SACL) associated with this <see cref="T:System.Security.AccessControl.CryptoKeySecurity" /> object.</summary>
/// <param name="rule">The audit rule to remove.</param>
// Token: 0x06002D0B RID: 11531 RVA: 0x00093584 File Offset: 0x00091784
[MonoTODO]
public void RemoveAuditRuleAll(CryptoKeyAuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all audit rules that exactly match the specified audit rule from the System Access Control List (SACL) associated with this <see cref="T:System.Security.AccessControl.CryptoKeySecurity" /> object.</summary>
/// <param name="rule">The audit rule to remove.</param>
// Token: 0x06002D0C RID: 11532 RVA: 0x0009358C File Offset: 0x0009178C
[MonoTODO]
public void RemoveAuditRuleSpecific(CryptoKeyAuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all audit rules that contain the same security identifier and qualifier as the specified audit rule in the System Access Control List (SACL) associated with this <see cref="T:System.Security.AccessControl.CryptoKeySecurity" /> object and then adds the specified audit rule.</summary>
/// <param name="rule">The audit rule to set.</param>
// Token: 0x06002D0D RID: 11533 RVA: 0x00093594 File Offset: 0x00091794
[MonoTODO]
public void SetAuditRule(CryptoKeyAuditRule rule)
{
throw new NotImplementedException();
}
}
}
@@ -0,0 +1,87 @@
using System;
namespace System.Security.AccessControl
{
/// <summary>Represents an Access Control Entry (ACE) that is not defined by one of the members of the <see cref="T:System.Security.AccessControl.AceType" /> enumeration.</summary>
// Token: 0x020004B9 RID: 1209
public sealed class CustomAce : GenericAce
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.CustomAce" /> class.</summary>
/// <param name="type">Type of the new Access Control Entry (ACE). This value must be greater than <see cref="F:System.Security.AccessControl.AceType.MaxDefinedAceType" />.</param>
/// <param name="flags">Flags that specify information about the inheritance, inheritance propagation, and auditing conditions for the new ACE.</param>
/// <param name="opaque">An array of byte values that contains the data for the new ACE. This value can be null. The length of this array must not be greater than the value of the <see cref="F:System.Security.AccessControl.CustomAce.MaxOpaqueLength" /> field, and must be a multiple of four.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">The value of the <paramref name="type" /> parameter is not greater than <see cref="F:System.Security.AccessControl.AceType.MaxDefinedAceType" /> or the length of the <paramref name="opaque" /> array is either greater than the value of the <see cref="F:System.Security.AccessControl.CustomAce.MaxOpaqueLength" /> field or not a multiple of four.</exception>
// Token: 0x06002D0E RID: 11534 RVA: 0x0009359C File Offset: 0x0009179C
public CustomAce(AceType type, AceFlags flags, byte[] opaque)
: base(type)
{
base.AceFlags = flags;
this.SetOpaque(opaque);
}
/// <summary>Gets the length, in bytes, of the binary representation of the current <see cref="T:System.Security.AccessControl.CustomAce" /> object. This length should be used before marshaling the ACL into a binary array with the <see cref="M:System.Security.AccessControl.CustomAce.GetBinaryForm" /> method.</summary>
/// <returns>The length, in bytes, of the binary representation of the current <see cref="T:System.Security.AccessControl.CustomAce" /> object.</returns>
// Token: 0x170008D8 RID: 2264
// (get) Token: 0x06002D0F RID: 11535 RVA: 0x000935B4 File Offset: 0x000917B4
[MonoTODO]
public override int BinaryLength
{
get
{
throw new NotImplementedException();
}
}
/// <summary>Gets the length of the opaque data associated with this <see cref="T:System.Security.AccessControl.CustomAce" /> object.</summary>
/// <returns>The length of the opaque callback data.</returns>
// Token: 0x170008D9 RID: 2265
// (get) Token: 0x06002D10 RID: 11536 RVA: 0x000935BC File Offset: 0x000917BC
public int OpaqueLength
{
get
{
return this.opaque.Length;
}
}
/// <summary>Marshals the contents of the <see cref="T:System.Security.AccessControl.CustomAce" /> object into the specified byte array beginning at the specified offset.</summary>
/// <param name="binaryForm">The byte array into which the contents of the <see cref="T:System.Security.AccessControl.CustomAce" /> is marshaled.</param>
/// <param name="offset">The offset at which to start marshaling.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="offset" /> is negative or too high to allow the entire <see cref="T:System.Security.AccessControl.CustomAce" /> to be copied into <paramref name="array" />.</exception>
// Token: 0x06002D11 RID: 11537 RVA: 0x000935C8 File Offset: 0x000917C8
[MonoTODO]
public override void GetBinaryForm(byte[] binaryForm, int offset)
{
throw new NotImplementedException();
}
/// <summary>Returns the opaque data associated with this <see cref="T:System.Security.AccessControl.CustomAce" /> object. </summary>
/// <returns>An array of byte values that represents the opaque data associated with this <see cref="T:System.Security.AccessControl.CustomAce" /> object.</returns>
// Token: 0x06002D12 RID: 11538 RVA: 0x000935D0 File Offset: 0x000917D0
public byte[] GetOpaque()
{
return (byte[])this.opaque.Clone();
}
/// <summary>Sets the opaque callback data associated with this <see cref="T:System.Security.AccessControl.CustomAce" /> object.</summary>
/// <param name="opaque">An array of byte values that represents the opaque callback data for this <see cref="T:System.Security.AccessControl.CustomAce" /> object.</param>
// Token: 0x06002D13 RID: 11539 RVA: 0x000935E4 File Offset: 0x000917E4
public void SetOpaque(byte[] opaque)
{
if (opaque == null)
{
throw new ArgumentNullException("opaque");
}
this.opaque = (byte[])opaque.Clone();
}
// Token: 0x040011D2 RID: 4562
private byte[] opaque;
/// <summary>Returns the maximum allowed length of an opaque data blob for this <see cref="T:System.Security.AccessControl.CustomAce" /> object.</summary>
// Token: 0x040011D3 RID: 4563
[MonoTODO]
public static readonly int MaxOpaqueLength;
}
}
@@ -0,0 +1,201 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Provides the ability to control access to directory objects without direct manipulation of Access Control Lists (ACLs).</summary>
// Token: 0x020004BA RID: 1210
public abstract class DirectoryObjectSecurity : ObjectSecurity
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.DirectoryObjectSecurity" /> class.</summary>
// Token: 0x06002D14 RID: 11540 RVA: 0x00093614 File Offset: 0x00091814
protected DirectoryObjectSecurity()
: base(false, true)
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.DirectoryObjectSecurity" /> class with the specified security descriptor.</summary>
/// <param name="securityDescriptor">The security descriptor to be associated with the new <see cref="T:System.Security.AccessControl.DirectoryObjectSecurity" />object.</param>
// Token: 0x06002D15 RID: 11541 RVA: 0x00093620 File Offset: 0x00091820
protected DirectoryObjectSecurity(CommonSecurityDescriptor securityDescriptor)
: base(securityDescriptor != null && securityDescriptor.IsContainer, true)
{
if (securityDescriptor == null)
{
throw new ArgumentNullException("securityDescriptor");
}
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.AccessRule" /> class with the specified values.</summary>
/// <returns>The <see cref="T:System.Security.AccessControl.AccessRule" /> object that this method creates.</returns>
/// <param name="identityReference">The identity to which the access rule applies. It must be an object that can be cast as a <see cref="T:System.Security.Principal.SecurityIdentifier" />.</param>
/// <param name="accessMask">The access mask of this rule. The access mask is a 32-bit collection of anonymous bits, the meaning of which is defined by the individual integrators.</param>
/// <param name="isInherited">true if this rule is inherited from a parent container.</param>
/// <param name="inheritanceFlags">Specifies the inheritance properties of the access rule.</param>
/// <param name="propagationFlags">Specifies whether inherited access rules are automatically propagated. The propagation flags are ignored if <paramref name="inheritanceFlags" /> is set to <see cref="F:System.Security.AccessControl.InheritanceFlags.None" />.</param>
/// <param name="type">Specifies the valid access control type.</param>
/// <param name="objectType">The identity of the class of objects to which the new access rule applies.</param>
/// <param name="inheritedObjectType">The identity of the class of child objects which can inherit the new access rule.</param>
// Token: 0x06002D16 RID: 11542 RVA: 0x0009364C File Offset: 0x0009184C
public virtual AccessRule AccessRuleFactory(IdentityReference identityReference, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType type, Guid objectType, Guid inheritedObjectType)
{
throw new NotImplementedException();
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.AuditRule" /> class with the specified values.</summary>
/// <returns>The <see cref="T:System.Security.AccessControl.AuditRule" /> object that this method creates.</returns>
/// <param name="identityReference">The identity to which the audit rule applies. It must be an object that can be cast as a <see cref="T:System.Security.Principal.SecurityIdentifier" />.</param>
/// <param name="accessMask">The access mask of this rule. The access mask is a 32-bit collection of anonymous bits, the meaning of which is defined by the individual integrators.</param>
/// <param name="isInherited">true if this rule is inherited from a parent container.</param>
/// <param name="inheritanceFlags">Specifies the inheritance properties of the audit rule.</param>
/// <param name="propagationFlags">Specifies whether inherited audit rules are automatically propagated. The propagation flags are ignored if <paramref name="inheritanceFlags" /> is set to <see cref="F:System.Security.AccessControl.InheritanceFlags.None" />.</param>
/// <param name="flags">Specifies the conditions for which the rule is audited.</param>
/// <param name="objectType">The identity of the class of objects to which the new audit rule applies.</param>
/// <param name="inheritedObjectType">The identity of the class of child objects which can inherit the new audit rule.</param>
// Token: 0x06002D17 RID: 11543 RVA: 0x00093654 File Offset: 0x00091854
public virtual AuditRule AuditRuleFactory(IdentityReference identityReference, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AuditFlags flags, Guid objectType, Guid inheritedObjectType)
{
throw new NotImplementedException();
}
/// <summary>Gets a collection of the access rules associated with the specified security identifier.</summary>
/// <returns>The collection of access rules associated with the specified <see cref="T:System.Security.Principal.SecurityIdentifier" /> object.</returns>
/// <param name="includeExplicit">true to include access rules explicitly set for the object.</param>
/// <param name="includeInherited">true to include inherited access rules.</param>
/// <param name="targetType">The security identifier for which to retrieve access rules. This must be an object that can be cast as a <see cref="T:System.Security.Principal.SecurityIdentifier" /> object.</param>
/// <PermissionSet>
/// <IPermission class="System.Security.Permissions.ReflectionPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="MemberAccess" />
/// </PermissionSet>
// Token: 0x06002D18 RID: 11544 RVA: 0x0009365C File Offset: 0x0009185C
public AuthorizationRuleCollection GetAccessRules(bool includeExplicit, bool includeInherited, Type targetType)
{
throw new NotImplementedException();
}
/// <summary>Gets a collection of the audit rules associated with the specified security identifier.</summary>
/// <returns>The collection of audit rules associated with the specified <see cref="T:System.Security.Principal.SecurityIdentifier" /> object.</returns>
/// <param name="includeExplicit">true to include audit rules explicitly set for the object.</param>
/// <param name="includeInherited">true to include inherited audit rules.</param>
/// <param name="targetType">The security identifier for which to retrieve audit rules. This must be an object that can be cast as a <see cref="T:System.Security.Principal.SecurityIdentifier" /> object.</param>
/// <PermissionSet>
/// <IPermission class="System.Security.Permissions.ReflectionPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="MemberAccess" />
/// </PermissionSet>
// Token: 0x06002D19 RID: 11545 RVA: 0x00093664 File Offset: 0x00091864
public AuthorizationRuleCollection GetAuditRules(bool includeExplicit, bool includeInherited, Type targetType)
{
throw new NotImplementedException();
}
/// <summary>Adds the specified access rule to the Discretionary Access Control List (DACL) associated with this <see cref="T:System.Security.AccessControl.DirectoryObjectSecurity" /> object.</summary>
/// <param name="rule">The access rule to add.</param>
// Token: 0x06002D1A RID: 11546 RVA: 0x0009366C File Offset: 0x0009186C
protected void AddAccessRule(ObjectAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Adds the specified audit rule to the System Access Control List (SACL) associated with this <see cref="T:System.Security.AccessControl.DirectoryObjectSecurity" /> object.</summary>
/// <param name="rule">The audit rule to add.</param>
// Token: 0x06002D1B RID: 11547 RVA: 0x00093674 File Offset: 0x00091874
protected void AddAuditRule(ObjectAuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Applies the specified modification to the Discretionary Access Control List (DACL) associated with this <see cref="T:System.Security.AccessControl.DirectoryObjectSecurity" /> object.</summary>
/// <returns>true if the DACL is successfully modified; otherwise, false.</returns>
/// <param name="modification">The modification to apply to the DACL.</param>
/// <param name="rule">The access rule to modify.</param>
/// <param name="modified">true if the DACL is successfully modified; otherwise, false.</param>
// Token: 0x06002D1C RID: 11548 RVA: 0x0009367C File Offset: 0x0009187C
protected override bool ModifyAccess(AccessControlModification modification, AccessRule rule, out bool modified)
{
throw new NotImplementedException();
}
/// <summary>Applies the specified modification to the System Access Control List (SACL) associated with this <see cref="T:System.Security.AccessControl.DirectoryObjectSecurity" /> object.</summary>
/// <returns>true if the SACL is successfully modified; otherwise, false.</returns>
/// <param name="modification">The modification to apply to the SACL.</param>
/// <param name="rule">The audit rule to modify.</param>
/// <param name="modified">true if the SACL is successfully modified; otherwise, false.</param>
// Token: 0x06002D1D RID: 11549 RVA: 0x00093684 File Offset: 0x00091884
protected override bool ModifyAudit(AccessControlModification modification, AuditRule rule, out bool modified)
{
throw new NotImplementedException();
}
/// <summary>Removes access rules that contain the same security identifier and access mask as the specified access rule from the Discretionary Access Control List (DACL) associated with this <see cref="T:System.Security.AccessControl.DirectoryObjectSecurity" /> object.</summary>
/// <returns>true if the access rule was successfully removed; otherwise, false.</returns>
/// <param name="rule">The access rule to remove.</param>
// Token: 0x06002D1E RID: 11550 RVA: 0x0009368C File Offset: 0x0009188C
protected bool RemoveAccessRule(ObjectAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all access rules that have the same security identifier as the specified access rule from the Discretionary Access Control List (DACL) associated with this <see cref="T:System.Security.AccessControl.DirectoryObjectSecurity" /> object.</summary>
/// <param name="rule">The access rule to remove.</param>
// Token: 0x06002D1F RID: 11551 RVA: 0x00093694 File Offset: 0x00091894
protected void RemoveAccessRuleAll(ObjectAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all access rules that exactly match the specified access rule from the Discretionary Access Control List (DACL) associated with this <see cref="T:System.Security.AccessControl.DirectoryObjectSecurity" /> object.</summary>
/// <param name="rule">The access rule to remove.</param>
// Token: 0x06002D20 RID: 11552 RVA: 0x0009369C File Offset: 0x0009189C
protected void RemoveAccessRuleSpecific(ObjectAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes audit rules that contain the same security identifier and access mask as the specified audit rule from the System Access Control List (SACL) associated with this <see cref="T:System.Security.AccessControl.CommonObjectSecurity" /> object.</summary>
/// <returns>true if the audit rule was successfully removed; otherwise, false.</returns>
/// <param name="rule">The audit rule to remove.</param>
// Token: 0x06002D21 RID: 11553 RVA: 0x000936A4 File Offset: 0x000918A4
protected bool RemoveAuditRule(ObjectAuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all audit rules that have the same security identifier as the specified audit rule from the System Access Control List (SACL) associated with this <see cref="T:System.Security.AccessControl.DirectoryObjectSecurity" /> object.</summary>
/// <param name="rule">The audit rule to remove.</param>
// Token: 0x06002D22 RID: 11554 RVA: 0x000936AC File Offset: 0x000918AC
protected void RemoveAuditRuleAll(ObjectAuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all audit rules that exactly match the specified audit rule from the System Access Control List (SACL) associated with this <see cref="T:System.Security.AccessControl.DirectoryObjectSecurity" /> object.</summary>
/// <param name="rule">The audit rule to remove.</param>
// Token: 0x06002D23 RID: 11555 RVA: 0x000936B4 File Offset: 0x000918B4
protected void RemoveAuditRuleSpecific(ObjectAuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all access rules in the Discretionary Access Control List (DACL) associated with this <see cref="T:System.Security.AccessControl.DirectoryObjectSecurity" /> object and then adds the specified access rule.</summary>
/// <param name="rule">The access rule to reset.</param>
// Token: 0x06002D24 RID: 11556 RVA: 0x000936BC File Offset: 0x000918BC
protected void ResetAccessRule(ObjectAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all access rules that contain the same security identifier and qualifier as the specified access rule in the Discretionary Access Control List (DACL) associated with this <see cref="T:System.Security.AccessControl.DirectoryObjectSecurity" /> object and then adds the specified access rule.</summary>
/// <param name="rule">The access rule to set.</param>
// Token: 0x06002D25 RID: 11557 RVA: 0x000936C4 File Offset: 0x000918C4
protected void SetAccessRule(ObjectAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all audit rules that contain the same security identifier and qualifier as the specified audit rule in the System Access Control List (SACL) associated with this <see cref="T:System.Security.AccessControl.DirectoryObjectSecurity" /> object and then adds the specified audit rule.</summary>
/// <param name="rule">The audit rule to set.</param>
// Token: 0x06002D26 RID: 11558 RVA: 0x000936CC File Offset: 0x000918CC
protected void SetAuditRule(ObjectAuditRule rule)
{
throw new NotImplementedException();
}
}
}
@@ -0,0 +1,39 @@
using System;
namespace System.Security.AccessControl
{
/// <summary>Represents the access control and audit security for a directory. This class cannot be inherited.</summary>
// Token: 0x020004BB RID: 1211
public sealed class DirectorySecurity : FileSystemSecurity
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.DirectorySecurity" /> class. </summary>
/// <exception cref="T:System.PlatformNotSupportedException">The current operating system is not Microsoft Windows 2000 or later.</exception>
// Token: 0x06002D27 RID: 11559 RVA: 0x000936D4 File Offset: 0x000918D4
public DirectorySecurity()
: base(true)
{
throw new PlatformNotSupportedException();
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.DirectorySecurity" /> class from a specified directory using the specified values of the <see cref="T:System.Security.AccessControl.AccessControlSections" /> enumeration.</summary>
/// <param name="name">The location of a directory to create a <see cref="T:System.Security.AccessControl.DirectorySecurity" /> object from.</param>
/// <param name="includeSections">One of the <see cref="T:System.Security.AccessControl.AccessControlSections" /> values that specifies the type of access control list (ACL) information to retrieve. </param>
/// <exception cref="T:System.ArgumentException">The <paramref name="name" /> parameter is a zero-length string, contains only white space, or contains one or more invalid characters as defined by <see cref="F:System.IO.Path.InvalidPathChars" />. </exception>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="name" /> parameter is null.</exception>
/// <exception cref="T:System.IO.DirectoryNotFoundException">The specified path is invalid, (for example, it is on an unmapped drive). </exception>
/// <exception cref="T:System.IO.FileNotFoundException">The file specified in the <paramref name="name" /> parameter was not found. </exception>
/// <exception cref="T:System.IO.IOException">An I/O error occurred while opening the directory.</exception>
/// <exception cref="T:System.NotSupportedException">The <paramref name="name" /> parameter is in an invalid format. </exception>
/// <exception cref="T:System.PlatformNotSupportedException">The current operating system is not Microsoft Windows 2000 or later.</exception>
/// <exception cref="T:System.IO.PathTooLongException">The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters. </exception>
/// <exception cref="T:System.Security.AccessControl.PrivilegeNotHeldException">The current system account does not have administrative privileges.</exception>
/// <exception cref="T:System.SystemException">The directory could not be found.</exception>
/// <exception cref="T:System.UnauthorizedAccessException">The <paramref name="name" /> parameter specified a directory that is read-only.-or- This operation is not supported on the current platform.-or- The caller does not have the required permission.</exception>
// Token: 0x06002D28 RID: 11560 RVA: 0x000936E4 File Offset: 0x000918E4
public DirectorySecurity(string name, AccessControlSections includeSections)
: base(true, name, includeSections)
{
throw new PlatformNotSupportedException();
}
}
}
@@ -0,0 +1,152 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Represents a Discretionary Access Control List (DACL).</summary>
// Token: 0x020004BC RID: 1212
public sealed class DiscretionaryAcl : CommonAcl
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.DiscretionaryAcl" /> class with the specified values.</summary>
/// <param name="isContainer">true if the new <see cref="T:System.Security.AccessControl.DiscretionaryAcl" /> object is a container.</param>
/// <param name="isDS">true if the new <see cref="T:System.Security.AccessControl.DiscretionaryAcl" /> object is a directory object Access Control List (ACL).</param>
/// <param name="capacity">The number of Access Control Entries (ACEs) this <see cref="T:System.Security.AccessControl.DiscretionaryAcl" /> object can contain. This number is to be used only as a hint.</param>
// Token: 0x06002D29 RID: 11561 RVA: 0x000936F4 File Offset: 0x000918F4
public DiscretionaryAcl(bool isContainer, bool isDS, int capacity)
: this(isContainer, isDS, 0, capacity)
{
throw new NotImplementedException();
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.DiscretionaryAcl" /> class with the specified values from the specified <see cref="T:System.Security.AccessControl.RawAcl" /> object.</summary>
/// <param name="isContainer">true if the new <see cref="T:System.Security.AccessControl.DiscretionaryAcl" /> object is a container.</param>
/// <param name="isDS">true if the new <see cref="T:System.Security.AccessControl.DiscretionaryAcl" /> object is a directory object Access Control List (ACL).</param>
/// <param name="rawAcl">The underlying <see cref="T:System.Security.AccessControl.RawAcl" /> object for the new <see cref="T:System.Security.AccessControl.DiscretionaryAcl" /> object. Specify null to create an empty ACL.</param>
// Token: 0x06002D2A RID: 11562 RVA: 0x00093708 File Offset: 0x00091908
public DiscretionaryAcl(bool isContainer, bool isDS, RawAcl rawAcl)
: base(isContainer, isDS, 0)
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.DiscretionaryAcl" /> class with the specified values.</summary>
/// <param name="isContainer">true if the new <see cref="T:System.Security.AccessControl.DiscretionaryAcl" /> object is a container.</param>
/// <param name="isDS">true if the new <see cref="T:System.Security.AccessControl.DiscretionaryAcl" /> object is a directory object Access Control List (ACL).</param>
/// <param name="revision">The revision level of the new <see cref="T:System.Security.AccessControl.DiscretionaryAcl" /> object.</param>
/// <param name="capacity">The number of Access Control Entries (ACEs) this <see cref="T:System.Security.AccessControl.DiscretionaryAcl" /> object can contain. This number is to be used only as a hint.</param>
// Token: 0x06002D2B RID: 11563 RVA: 0x00093714 File Offset: 0x00091914
public DiscretionaryAcl(bool isContainer, bool isDS, byte revision, int capacity)
: base(isContainer, isDS, revision, capacity)
{
}
/// <summary>Adds an Access Control Entry (ACE) with the specified settings to the current <see cref="T:System.Security.AccessControl.DiscretionaryAcl" /> object.</summary>
/// <param name="accessType">The type of access control (allow or deny) to add.</param>
/// <param name="sid">The <see cref="T:System.Security.Principal.SecurityIdentifier" /> for which to add an ACE.</param>
/// <param name="accessMask">The access rule for the new ACE.</param>
/// <param name="inheritanceFlags">Flags that specify the inheritance properties of the new ACE.</param>
/// <param name="propagationFlags">Flags that specify the inheritance propagation properties for the new ACE.</param>
// Token: 0x06002D2C RID: 11564 RVA: 0x00093724 File Offset: 0x00091924
public void AddAccess(AccessControlType accessType, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags)
{
throw new NotImplementedException();
}
/// <summary>Adds an Access Control Entry (ACE) with the specified settings to the current <see cref="T:System.Security.AccessControl.DiscretionaryAcl" /> object. Use this method for directory object Access Control Lists (ACLs) when specifying the object type or the inherited object type for the new ACE.</summary>
/// <param name="accessType">The type of access control (allow or deny) to add.</param>
/// <param name="sid">The <see cref="T:System.Security.Principal.SecurityIdentifier" /> for which to add an ACE.</param>
/// <param name="accessMask">The access rule for the new ACE.</param>
/// <param name="inheritanceFlags">Flags that specify the inheritance properties of the new ACE.</param>
/// <param name="propagationFlags">Flags that specify the inheritance propagation properties for the new ACE.</param>
/// <param name="objectFlags">Flags that specify if the <paramref name="objectType" /> and <paramref name="inheritedObjectType" /> parameters contain non-null values.</param>
/// <param name="objectType">The identity of the class of objects to which the new ACE applies.</param>
/// <param name="inheritedObjectType">The identity of the class of child objects which can inherit the new ACE.</param>
// Token: 0x06002D2D RID: 11565 RVA: 0x0009372C File Offset: 0x0009192C
public void AddAccess(AccessControlType accessType, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, ObjectAceFlags objectFlags, Guid objectType, Guid inheritedObjectType)
{
throw new NotImplementedException();
}
/// <summary>Removes the specified access control rule from the current <see cref="T:System.Security.AccessControl.DiscretionaryAcl" /> object.</summary>
/// <returns>true if this method successfully removes the specified access; otherwise, false.</returns>
/// <param name="accessType">The type of access control (allow or deny) to remove.</param>
/// <param name="sid">The <see cref="T:System.Security.Principal.SecurityIdentifier" /> for which to remove an access control rule.</param>
/// <param name="accessMask">The access mask for the rule to be removed.</param>
/// <param name="inheritanceFlags">Flags that specify the inheritance properties of the rule to be removed.</param>
/// <param name="propagationFlags">Flags that specify the inheritance propagation properties for the rule to be removed.</param>
// Token: 0x06002D2E RID: 11566 RVA: 0x00093734 File Offset: 0x00091934
public bool RemoveAccess(AccessControlType accessType, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags)
{
throw new NotImplementedException();
}
/// <summary>Removes the specified access control rule from the current <see cref="T:System.Security.AccessControl.DiscretionaryAcl" /> object. Use this method for directory object Access Control Lists (ACLs) when specifying the object type or the inherited object type.</summary>
/// <returns>true if this method successfully removes the specified access; otherwise, false.</returns>
/// <param name="accessType">The type of access control (allow or deny) to remove.</param>
/// <param name="sid">The <see cref="T:System.Security.Principal.SecurityIdentifier" /> for which to remove an access control rule.</param>
/// <param name="accessMask">The access mask for the access control rule to be removed.</param>
/// <param name="inheritanceFlags">Flags that specify the inheritance properties of the access control rule to be removed.</param>
/// <param name="propagationFlags">Flags that specify the inheritance propagation properties for the access control rule to be removed.</param>
/// <param name="objectFlags">Flags that specify if the <paramref name="objectType" /> and <paramref name="inheritedObjectType" /> parameters contain non-null values.</param>
/// <param name="objectType">The identity of the class of objects to which the removed access control rule applies.</param>
/// <param name="inheritedObjectType">The identity of the class of child objects which can inherit the removed access control rule.</param>
// Token: 0x06002D2F RID: 11567 RVA: 0x0009373C File Offset: 0x0009193C
public bool RemoveAccess(AccessControlType accessType, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, ObjectAceFlags objectFlags, Guid objectType, Guid inheritedObjectType)
{
throw new NotImplementedException();
}
/// <summary>Removes the specified Access Control Entry (ACE) from the current <see cref="T:System.Security.AccessControl.DiscretionaryAcl" /> object.</summary>
/// <param name="accessType">The type of access control (allow or deny) to remove.</param>
/// <param name="sid">The <see cref="T:System.Security.Principal.SecurityIdentifier" /> for which to remove an ACE.</param>
/// <param name="accessMask">The access mask for the ACE to be removed.</param>
/// <param name="inheritanceFlags">Flags that specify the inheritance properties of the ACE to be removed.</param>
/// <param name="propagationFlags">Flags that specify the inheritance propagation properties for the ACE to be removed.</param>
// Token: 0x06002D30 RID: 11568 RVA: 0x00093744 File Offset: 0x00091944
public void RemoveAccessSpecific(AccessControlType accessType, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags)
{
throw new NotImplementedException();
}
/// <summary>Removes the specified Access Control Entry (ACE) from the current <see cref="T:System.Security.AccessControl.DiscretionaryAcl" /> object. Use this method for directory object Access Control Lists (ACLs) when specifying the object type or the inherited object type for the ACE to be removed.</summary>
/// <param name="accessType">The type of access control (allow or deny) to remove.</param>
/// <param name="sid">The <see cref="T:System.Security.Principal.SecurityIdentifier" /> for which to remove an ACE.</param>
/// <param name="accessMask">The access mask for the ACE to be removed.</param>
/// <param name="inheritanceFlags">Flags that specify the inheritance properties of the ACE to be removed.</param>
/// <param name="propagationFlags">Flags that specify the inheritance propagation properties for the ACE to be removed.</param>
/// <param name="objectFlags">Flags that specify if the <paramref name="objectType" /> and <paramref name="inheritedObjectType" /> parameters contain non-null values.</param>
/// <param name="objectType">The identity of the class of objects to which the removed ACE applies.</param>
/// <param name="inheritedObjectType">The identity of the class of child objects which can inherit the removed ACE.</param>
// Token: 0x06002D31 RID: 11569 RVA: 0x0009374C File Offset: 0x0009194C
public void RemoveAccessSpecific(AccessControlType accessType, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, ObjectAceFlags objectFlags, Guid objectType, Guid inheritedObjectType)
{
throw new NotImplementedException();
}
/// <summary>Sets the specified access control for the specified <see cref="T:System.Security.Principal.SecurityIdentifier" /> object.</summary>
/// <param name="accessType">The type of access control (allow or deny) to set.</param>
/// <param name="sid">The <see cref="T:System.Security.Principal.SecurityIdentifier" /> for which to set an ACE.</param>
/// <param name="accessMask">The access rule for the new ACE.</param>
/// <param name="inheritanceFlags">Flags that specify the inheritance properties of the new ACE.</param>
/// <param name="propagationFlags">Flags that specify the inheritance propagation properties for the new ACE.</param>
// Token: 0x06002D32 RID: 11570 RVA: 0x00093754 File Offset: 0x00091954
public void SetAccess(AccessControlType accessType, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags)
{
throw new NotImplementedException();
}
/// <summary>Sets the specified access control for the specified <see cref="T:System.Security.Principal.SecurityIdentifier" /> object.</summary>
/// <param name="accessType">The type of access control (allow or deny) to set.</param>
/// <param name="sid">The <see cref="T:System.Security.Principal.SecurityIdentifier" /> for which to set an ACE.</param>
/// <param name="accessMask">The access rule for the new ACE.</param>
/// <param name="inheritanceFlags">Flags that specify the inheritance properties of the new ACE.</param>
/// <param name="propagationFlags">Flags that specify the inheritance propagation properties for the new ACE.</param>
/// <param name="objectFlags">Flags that specify if the <paramref name="objectType" /> and <paramref name="inheritedObjectType" /> parameters contain non-null values.</param>
/// <param name="objectType">The identity of the class of objects to which the new ACE applies.</param>
/// <param name="inheritedObjectType">The identity of the class of child objects which can inherit the new ACE.</param>
// Token: 0x06002D33 RID: 11571 RVA: 0x0009375C File Offset: 0x0009195C
public void SetAccess(AccessControlType accessType, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, ObjectAceFlags objectFlags, Guid objectType, Guid inheritedObjectType)
{
throw new NotImplementedException();
}
}
}
@@ -0,0 +1,58 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Represents a set of access rights allowed or denied for a user or group. This class cannot be inherited. </summary>
// Token: 0x020004BD RID: 1213
public sealed class EventWaitHandleAccessRule : AccessRule
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.EventWaitHandleAccessRule" /> class, specifying the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied.</summary>
/// <param name="identity">The user or group the rule applies to. Must be of type <see cref="T:System.Security.Principal.SecurityIdentifier" /> or a type such as <see cref="T:System.Security.Principal.NTAccount" /> that can be converted to type <see cref="T:System.Security.Principal.SecurityIdentifier" />.</param>
/// <param name="eventRights">A bitwise combination of <see cref="T:System.Security.AccessControl.EventWaitHandleRights" /> values specifying the rights allowed or denied.</param>
/// <param name="type">One of the <see cref="T:System.Security.AccessControl.AccessControlType" /> values specifying whether the rights are allowed or denied.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="eventRights" /> specifies an invalid value.-or-<paramref name="type" /> specifies an invalid value.</exception>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="identity" /> is null.-or-<paramref name="eventRights" /> is zero.</exception>
/// <exception cref="T:System.ArgumentException">
/// <paramref name="identity" /> is neither of type <see cref="T:System.Security.Principal.SecurityIdentifier" /> nor of a type such as <see cref="T:System.Security.Principal.NTAccount" /> that can be converted to type <see cref="T:System.Security.Principal.SecurityIdentifier" />.</exception>
// Token: 0x06002D34 RID: 11572 RVA: 0x00093764 File Offset: 0x00091964
public EventWaitHandleAccessRule(IdentityReference identity, EventWaitHandleRights eventRights, AccessControlType type)
: base(identity, 0, false, InheritanceFlags.None, PropagationFlags.None, AccessControlType.Allow)
{
this.rights = eventRights;
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.EventWaitHandleAccessRule" /> class, specifying the name of the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied.</summary>
/// <param name="identity">The name of the user or group the rule applies to.</param>
/// <param name="eventRights">A bitwise combination of <see cref="T:System.Security.AccessControl.EventWaitHandleRights" /> values specifying the rights allowed or denied.</param>
/// <param name="type">One of the <see cref="T:System.Security.AccessControl.AccessControlType" /> values specifying whether the rights are allowed or denied.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="eventRights" /> specifies an invalid value.-or-<paramref name="type" /> specifies an invalid value.</exception>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="eventRights" /> is zero.</exception>
/// <exception cref="T:System.ArgumentException">
/// <paramref name="identity" /> is null.-or-<paramref name="identity" /> is a zero-length string.-or-<paramref name="identity" /> is longer than 512 characters.</exception>
// Token: 0x06002D35 RID: 11573 RVA: 0x0009377C File Offset: 0x0009197C
public EventWaitHandleAccessRule(string identity, EventWaitHandleRights eventRights, AccessControlType type)
: this(new SecurityIdentifier(identity), eventRights, type)
{
}
/// <summary>Gets the rights allowed or denied by the access rule.</summary>
/// <returns>A bitwise combination of <see cref="T:System.Security.AccessControl.EventWaitHandleRights" /> values indicating the rights allowed or denied by the access rule.</returns>
// Token: 0x170008DA RID: 2266
// (get) Token: 0x06002D36 RID: 11574 RVA: 0x0009378C File Offset: 0x0009198C
public EventWaitHandleRights EventWaitHandleRights
{
get
{
return this.rights;
}
}
// Token: 0x040011D4 RID: 4564
private EventWaitHandleRights rights;
}
}
@@ -0,0 +1,68 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Represents a set of access rights to be audited for a user or group. This class cannot be inherited. </summary>
// Token: 0x020004BE RID: 1214
public sealed class EventWaitHandleAuditRule : AuditRule
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.EventWaitHandleAuditRule" /> class, specifying the user or group to audit, the rights to audit, and whether to audit success, failure, or both.</summary>
/// <param name="identity">The user or group the rule applies to. Must be of type <see cref="T:System.Security.Principal.SecurityIdentifier" /> or a type such as <see cref="T:System.Security.Principal.NTAccount" /> that can be converted to type <see cref="T:System.Security.Principal.SecurityIdentifier" />.</param>
/// <param name="eventRights">A bitwise combination of <see cref="T:System.Security.AccessControl.EventWaitHandleRights" /> values specifying the kinds of access to audit.</param>
/// <param name="flags">A bitwise combination of <see cref="T:System.Security.AccessControl.AuditFlags" /> values specifying whether to audit success, failure, or both.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="eventRights" /> specifies an invalid value.-or-<paramref name="flags" /> specifies an invalid value.</exception>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="identity" /> is null. -or-<paramref name="eventRights" /> is zero.</exception>
/// <exception cref="T:System.ArgumentException">
/// <paramref name="flags" /> is <see cref="F:System.Security.AccessControl.AuditFlags.None" />.</exception>
/// <exception cref="T:System.ArgumentException">
/// <paramref name="identity" /> is neither of type <see cref="T:System.Security.Principal.SecurityIdentifier" /> nor of a type such as <see cref="T:System.Security.Principal.NTAccount" /> that can be converted to type <see cref="T:System.Security.Principal.SecurityIdentifier" />.</exception>
// Token: 0x06002D37 RID: 11575 RVA: 0x00093794 File Offset: 0x00091994
public EventWaitHandleAuditRule(IdentityReference identity, EventWaitHandleRights eventRights, AuditFlags flags)
: base(identity, 0, false, InheritanceFlags.None, PropagationFlags.None, flags)
{
if (eventRights < EventWaitHandleRights.Modify || eventRights > EventWaitHandleRights.FullControl)
{
throw new ArgumentOutOfRangeException("eventRights");
}
if (flags < AuditFlags.None || flags > AuditFlags.Failure)
{
throw new ArgumentOutOfRangeException("flags");
}
if (identity == null)
{
throw new ArgumentNullException("identity");
}
if (eventRights == (EventWaitHandleRights)0)
{
throw new ArgumentNullException("eventRights");
}
if (flags == AuditFlags.None)
{
throw new ArgumentException("flags");
}
if (!(identity is SecurityIdentifier))
{
throw new ArgumentException("identity");
}
this.rights = eventRights;
}
/// <summary>Gets the access rights affected by the audit rule.</summary>
/// <returns>A bitwise combination of <see cref="T:System.Security.AccessControl.EventWaitHandleRights" /> values that indicates the rights affected by the audit rule.</returns>
// Token: 0x170008DB RID: 2267
// (get) Token: 0x06002D38 RID: 11576 RVA: 0x0009383C File Offset: 0x00091A3C
public EventWaitHandleRights EventWaitHandleRights
{
get
{
return this.rights;
}
}
// Token: 0x040011D5 RID: 4565
private EventWaitHandleRights rights;
}
}
@@ -0,0 +1,32 @@
using System;
namespace System.Security.AccessControl
{
/// <summary>Specifies the access control rights that can be applied to named system event objects.</summary>
// Token: 0x020004BF RID: 1215
[Flags]
public enum EventWaitHandleRights
{
/// <summary>The right to set or reset the signaled state of a named event.</summary>
// Token: 0x040011D7 RID: 4567
Modify = 2,
/// <summary>The right to delete a named event.</summary>
// Token: 0x040011D8 RID: 4568
Delete = 65536,
/// <summary>The right to open and copy the access rules and audit rules for a named event.</summary>
// Token: 0x040011D9 RID: 4569
ReadPermissions = 131072,
/// <summary>The right to change the security and audit rules associated with a named event.</summary>
// Token: 0x040011DA RID: 4570
ChangePermissions = 262144,
/// <summary>The right to change the owner of a named event.</summary>
// Token: 0x040011DB RID: 4571
TakeOwnership = 524288,
/// <summary>The right to wait on a named event.</summary>
// Token: 0x040011DC RID: 4572
Synchronize = 1048576,
/// <summary>The right to exert full control over a named event, and to modify its access rules and audit rules.</summary>
// Token: 0x040011DD RID: 4573
FullControl = 2031619
}
}
@@ -0,0 +1,217 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Represents the Windows access control security applied to a named system wait handle. This class cannot be inherited.</summary>
// Token: 0x020004C0 RID: 1216
public sealed class EventWaitHandleSecurity : NativeObjectSecurity
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.EventWaitHandleSecurity" /> class with default values.</summary>
/// <exception cref="T:System.NotSupportedException">This class is not supported on Windows 98 or Windows Millennium Edition.</exception>
// Token: 0x06002D39 RID: 11577 RVA: 0x00093844 File Offset: 0x00091A44
public EventWaitHandleSecurity()
{
throw new NotImplementedException();
}
/// <summary>Gets the enumeration type that the <see cref="T:System.Security.AccessControl.EventWaitHandleSecurity" /> class uses to represent access rights.</summary>
/// <returns>A <see cref="T:System.Type" /> object representing the <see cref="T:System.Security.AccessControl.EventWaitHandleRights" /> enumeration.</returns>
// Token: 0x170008DC RID: 2268
// (get) Token: 0x06002D3A RID: 11578 RVA: 0x00093854 File Offset: 0x00091A54
public override Type AccessRightType
{
get
{
return typeof(EventWaitHandleRights);
}
}
/// <summary>Gets the type that the <see cref="T:System.Security.AccessControl.EventWaitHandleSecurity" /> class uses to represent access rules.</summary>
/// <returns>A <see cref="T:System.Type" /> object representing the <see cref="T:System.Security.AccessControl.EventWaitHandleAccessRule" /> class.</returns>
// Token: 0x170008DD RID: 2269
// (get) Token: 0x06002D3B RID: 11579 RVA: 0x00093860 File Offset: 0x00091A60
public override Type AccessRuleType
{
get
{
return typeof(EventWaitHandleAccessRule);
}
}
/// <summary>Gets the type that the <see cref="T:System.Security.AccessControl.EventWaitHandleSecurity" /> class uses to represent audit rules.</summary>
/// <returns>A <see cref="T:System.Type" /> object representing the <see cref="T:System.Security.AccessControl.EventWaitHandleAuditRule" /> class.</returns>
// Token: 0x170008DE RID: 2270
// (get) Token: 0x06002D3C RID: 11580 RVA: 0x0009386C File Offset: 0x00091A6C
public override Type AuditRuleType
{
get
{
return typeof(EventWaitHandleAuditRule);
}
}
/// <summary>Creates a new access control rule for the specified user, with the specified access rights, access control, and flags.</summary>
/// <returns>An <see cref="T:System.Security.AccessControl.EventWaitHandleAccessRule" /> object representing the specified rights for the specified user.</returns>
/// <param name="identityReference">An <see cref="T:System.Security.Principal.IdentityReference" /> that identifies the user or group the rule applies to.</param>
/// <param name="accessMask">A bitwise combination of <see cref="T:System.Security.AccessControl.EventWaitHandleRights" /> values specifying the access rights to allow or deny, cast to an integer.</param>
/// <param name="isInherited">Meaningless for named wait handles, because they have no hierarchy.</param>
/// <param name="inheritanceFlags">Meaningless for named wait handles, because they have no hierarchy.</param>
/// <param name="propagationFlags">Meaningless for named wait handles, because they have no hierarchy.</param>
/// <param name="type">One of the <see cref="T:System.Security.AccessControl.AccessControlType" /> values specifying whether the rights are allowed or denied.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="accessMask" />, <paramref name="inheritanceFlags" />, <paramref name="propagationFlags" />, or <paramref name="type" /> specifies an invalid value.</exception>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="identityReference" /> is null. -or-<paramref name="accessMask" /> is zero.</exception>
/// <exception cref="T:System.ArgumentException">
/// <paramref name="identityReference" /> is neither of type <see cref="T:System.Security.Principal.SecurityIdentifier" />, nor of a type such as <see cref="T:System.Security.Principal.NTAccount" /> that can be converted to type <see cref="T:System.Security.Principal.SecurityIdentifier" />.</exception>
// Token: 0x06002D3D RID: 11581 RVA: 0x00093878 File Offset: 0x00091A78
public override AccessRule AccessRuleFactory(IdentityReference identityReference, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType type)
{
return new EventWaitHandleAccessRule(identityReference, (EventWaitHandleRights)accessMask, type);
}
/// <summary>Searches for a matching access control rule with which the new rule can be merged. If none are found, adds the new rule.</summary>
/// <param name="rule">The access control rule to add.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002D3E RID: 11582 RVA: 0x00093884 File Offset: 0x00091A84
[MonoTODO]
public void AddAccessRule(EventWaitHandleAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Searches for an access control rule with the same user and <see cref="T:System.Security.AccessControl.AccessControlType" /> (allow or deny) as the specified access rule, and with compatible inheritance and propagation flags; if such a rule is found, the rights contained in the specified access rule are removed from it.</summary>
/// <returns>true if a compatible rule is found; otherwise, false.</returns>
/// <param name="rule">An <see cref="T:System.Security.AccessControl.EventWaitHandleAccessRule" /> that specifies the user and <see cref="T:System.Security.AccessControl.AccessControlType" /> to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Specifies the rights to remove from the compatible rule, if found.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002D3F RID: 11583 RVA: 0x0009388C File Offset: 0x00091A8C
[MonoTODO]
public bool RemoveAccessRule(EventWaitHandleAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Searches for all access control rules with the same user and <see cref="T:System.Security.AccessControl.AccessControlType" /> (allow or deny) as the specified rule and, if found, removes them.</summary>
/// <param name="rule">An <see cref="T:System.Security.AccessControl.EventWaitHandleAccessRule" /> that specifies the user and <see cref="T:System.Security.AccessControl.AccessControlType" /> to search for. Any rights specified by this rule are ignored.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002D40 RID: 11584 RVA: 0x00093894 File Offset: 0x00091A94
[MonoTODO]
public void RemoveAccessRuleAll(EventWaitHandleAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Searches for an access control rule that exactly matches the specified rule and, if found, removes it.</summary>
/// <param name="rule">The <see cref="T:System.Security.AccessControl.EventWaitHandleAccessRule" /> to remove.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002D41 RID: 11585 RVA: 0x0009389C File Offset: 0x00091A9C
[MonoTODO]
public void RemoveAccessRuleSpecific(EventWaitHandleAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all access control rules with the same user as the specified rule, regardless of <see cref="T:System.Security.AccessControl.AccessControlType" />, and then adds the specified rule.</summary>
/// <param name="rule">The <see cref="T:System.Security.AccessControl.EventWaitHandleAccessRule" /> to add. The user specified by this rule determines the rules to remove before this rule is added.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002D42 RID: 11586 RVA: 0x000938A4 File Offset: 0x00091AA4
[MonoTODO]
public void ResetAccessRule(EventWaitHandleAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all access control rules with the same user and <see cref="T:System.Security.AccessControl.AccessControlType" /> (allow or deny) as the specified rule, and then adds the specified rule.</summary>
/// <param name="rule">The <see cref="T:System.Security.AccessControl.EventWaitHandleAccessRule" /> to add. The user and <see cref="T:System.Security.AccessControl.AccessControlType" /> of this rule determine the rules to remove before this rule is added.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002D43 RID: 11587 RVA: 0x000938AC File Offset: 0x00091AAC
[MonoTODO]
public void SetAccessRule(EventWaitHandleAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Creates a new audit rule, specifying the user the rule applies to, the access rights to audit, and the outcome that triggers the audit rule.</summary>
/// <returns>An <see cref="T:System.Security.AccessControl.EventWaitHandleAuditRule" /> object representing the specified audit rule for the specified user. The return type of the method is the base class, <see cref="T:System.Security.AccessControl.AuditRule" />, but the return value can be cast safely to the derived class.</returns>
/// <param name="identityReference">An <see cref="T:System.Security.Principal.IdentityReference" /> that identifies the user or group the rule applies to.</param>
/// <param name="accessMask">A bitwise combination of <see cref="T:System.Security.AccessControl.EventWaitHandleRights" /> values specifying the access rights to audit, cast to an integer.</param>
/// <param name="isInherited">Meaningless for named wait handles, because they have no hierarchy.</param>
/// <param name="inheritanceFlags">Meaningless for named wait handles, because they have no hierarchy.</param>
/// <param name="propagationFlags">Meaningless for named wait handles, because they have no hierarchy.</param>
/// <param name="flags">A bitwise combination of <see cref="T:System.Security.AccessControl.AuditFlags" /> values specifying whether to audit successful access, failed access, or both.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="accessMask" />, <paramref name="inheritanceFlags" />, <paramref name="propagationFlags" />, or <paramref name="flags" /> specifies an invalid value.</exception>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="identityReference" /> is null. -or-<paramref name="accessMask" /> is zero.</exception>
/// <exception cref="T:System.ArgumentException">
/// <paramref name="identityReference" /> is neither of type <see cref="T:System.Security.Principal.SecurityIdentifier" />, nor of a type such as <see cref="T:System.Security.Principal.NTAccount" /> that can be converted to type <see cref="T:System.Security.Principal.SecurityIdentifier" />.</exception>
// Token: 0x06002D44 RID: 11588 RVA: 0x000938B4 File Offset: 0x00091AB4
public override AuditRule AuditRuleFactory(IdentityReference identityReference, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AuditFlags flags)
{
return new EventWaitHandleAuditRule(identityReference, (EventWaitHandleRights)accessMask, flags);
}
/// <summary>Searches for an audit rule with which the new rule can be merged. If none are found, adds the new rule.</summary>
/// <param name="rule">The audit rule to add. The user specified by this rule determines the search.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002D45 RID: 11589 RVA: 0x000938C0 File Offset: 0x00091AC0
[MonoTODO]
public void AddAuditRule(EventWaitHandleAuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Searches for an audit rule with the same user as the specified rule, and with compatible inheritance and propagation flags; if a compatible rule is found, the rights contained in the specified rule are removed from it.</summary>
/// <returns>true if a compatible rule is found; otherwise, false.</returns>
/// <param name="rule">An <see cref="T:System.Security.AccessControl.EventWaitHandleAuditRule" /> that specifies the user to search for and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Specifies the rights to remove from the compatible rule, if found.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002D46 RID: 11590 RVA: 0x000938C8 File Offset: 0x00091AC8
[MonoTODO]
public bool RemoveAuditRule(EventWaitHandleAuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Searches for all audit rules with the same user as the specified rule and, if found, removes them.</summary>
/// <param name="rule">An <see cref="T:System.Security.AccessControl.EventWaitHandleAuditRule" /> that specifies the user to search for. Any rights specified by this rule are ignored.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002D47 RID: 11591 RVA: 0x000938D0 File Offset: 0x00091AD0
[MonoTODO]
public void RemoveAuditRuleAll(EventWaitHandleAuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Searches for an audit rule that exactly matches the specified rule and, if found, removes it.</summary>
/// <param name="rule">The <see cref="T:System.Security.AccessControl.EventWaitHandleAuditRule" /> to remove.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002D48 RID: 11592 RVA: 0x000938D8 File Offset: 0x00091AD8
[MonoTODO]
public void RemoveAuditRuleSpecific(EventWaitHandleAuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all audit rules with the same user as the specified rule, regardless of the <see cref="T:System.Security.AccessControl.AuditFlags" /> value, and then adds the specified rule.</summary>
/// <param name="rule">The <see cref="T:System.Security.AccessControl.EventWaitHandleAuditRule" /> to add. The user specified by this rule determines the rules to remove before this rule is added.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002D49 RID: 11593 RVA: 0x000938E0 File Offset: 0x00091AE0
[MonoTODO]
public void SetAuditRule(EventWaitHandleAuditRule rule)
{
throw new NotImplementedException();
}
}
}
@@ -0,0 +1,40 @@
using System;
namespace System.Security.AccessControl
{
/// <summary>Represents the access control and audit security for a file. This class cannot be inherited.</summary>
// Token: 0x020004C1 RID: 1217
public sealed class FileSecurity : FileSystemSecurity
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.FileSecurity" /> class. </summary>
/// <exception cref="T:System.PlatformNotSupportedException">The current operating system is not Microsoft Windows 2000 or later.</exception>
// Token: 0x06002D4A RID: 11594 RVA: 0x000938E8 File Offset: 0x00091AE8
public FileSecurity()
: base(false)
{
throw new PlatformNotSupportedException();
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.FileSecurity" /> class from a specified file using the specified values of the <see cref="T:System.Security.AccessControl.AccessControlSections" /> enumeration.</summary>
/// <param name="fileName">The location of a file to create a <see cref="T:System.Security.AccessControl.FileSecurity" /> object from.</param>
/// <param name="includeSections">One of the <see cref="T:System.Security.AccessControl.AccessControlSections" /> values that specifies the type of access control list (ACL) information to retrieve. </param>
/// <exception cref="T:System.ArgumentException">The <paramref name="fileName" /> parameter is a zero-length string, contains only white space, or contains one or more invalid characters as defined by <see cref="F:System.IO.Path.InvalidPathChars" />. </exception>
/// <exception cref="T:System.IO.DirectoryNotFoundException">The specified path is invalid, (for example, it is on an unmapped drive). </exception>
/// <exception cref="T:System.IO.FileNotFoundException">The file specified in the <paramref name="fileName" /> parameter was not found. </exception>
/// <exception cref="T:System.IO.IOException">An I/O error occurred while opening the file.</exception>
/// <exception cref="T:System.NotSupportedException">
/// <paramref name="path" /> is in an invalid format. </exception>
/// <exception cref="T:System.Runtime.InteropServices.SEHException">The <paramref name="fileName" /> parameter is null.</exception>
/// <exception cref="T:System.PlatformNotSupportedException">The current operating system is not Microsoft Windows 2000 or later.</exception>
/// <exception cref="T:System.IO.PathTooLongException">The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters. </exception>
/// <exception cref="T:System.Security.AccessControl.PrivilegeNotHeldException">The current system account does not have administrative privileges.</exception>
/// <exception cref="T:System.SystemException">The file could not be found.</exception>
/// <exception cref="T:System.UnauthorizedAccessException">The <paramref name="fileName" /> parameter specified a file that is read-only.-or- This operation is not supported on the current platform.-or- The <paramref name="fileName" /> parameter specified a directory.-or- The caller does not have the required permission.</exception>
// Token: 0x06002D4B RID: 11595 RVA: 0x000938F8 File Offset: 0x00091AF8
public FileSecurity(string fileName, AccessControlSections includeSections)
: base(false, fileName, includeSections)
{
throw new PlatformNotSupportedException();
}
}
}
@@ -0,0 +1,80 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Represents an abstraction of an access control entry (ACE) that defines an access rule for a file or directory. This class cannot be inherited.</summary>
// Token: 0x020004C2 RID: 1218
public sealed class FileSystemAccessRule : AccessRule
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.FileSystemAccessRule" /> class using a reference to a user account, a value that specifies the type of operation associated with the access rule, and a value that specifies whether to allow or deny the operation. </summary>
/// <param name="identity">An <see cref="T:System.Security.Principal.IdentityReference" /> object that encapsulates a reference to a user account.</param>
/// <param name="fileSystemRights">One of the <see cref="T:System.Security.AccessControl.FileSystemRights" /> values that specifies the type of operation associated with the access rule. </param>
/// <param name="type">One of the <see cref="T:System.Security.AccessControl.AccessControlType" /> values that specifies whether to allow or deny the operation.</param>
/// <exception cref="T:System.ArgumentException">The <paramref name="identity" /> parameter is not an <see cref="T:System.Security.Principal.IdentityReference" /> object.</exception>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="identity" /> parameter is null.</exception>
/// <exception cref="T:System.ArgumentOutOfRangeException">An incorrect enumeration was passed to the <paramref name="type " />parameter.</exception>
// Token: 0x06002D4C RID: 11596 RVA: 0x00093908 File Offset: 0x00091B08
public FileSystemAccessRule(IdentityReference identity, FileSystemRights fileSystemRights, AccessControlType type)
: this(identity, fileSystemRights, InheritanceFlags.None, PropagationFlags.None, type)
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.FileSystemAccessRule" /> class using the name of a user account, a value that specifies the type of operation associated with the access rule, and a value that describes whether to allow or deny the operation. </summary>
/// <param name="identity">The name of a user account.</param>
/// <param name="fileSystemRights">One of the <see cref="T:System.Security.AccessControl.FileSystemRights" /> values that specifies the type of operation associated with the access rule. </param>
/// <param name="type">One of the <see cref="T:System.Security.AccessControl.AccessControlType" /> values that specifies whether to allow or deny the operation.</param>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="identity" /> parameter is null.</exception>
/// <exception cref="T:System.ArgumentOutOfRangeException">An incorrect enumeration was passed to the <paramref name="type " />parameter.</exception>
// Token: 0x06002D4D RID: 11597 RVA: 0x00093918 File Offset: 0x00091B18
public FileSystemAccessRule(string identity, FileSystemRights fileSystemRights, AccessControlType type)
: this(new SecurityIdentifier(identity), fileSystemRights, InheritanceFlags.None, PropagationFlags.None, type)
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.FileSystemAccessRule" /> class using a reference to a user account, a value that specifies the type of operation associated with the access rule, a value that determines how rights are inherited, a value that determines how rights are propagated, and a value that specifies whether to allow or deny the operation.</summary>
/// <param name="identity">An <see cref="T:System.Security.Principal.IdentityReference" /> object that encapsulates a reference to a user account.</param>
/// <param name="fileSystemRights">One of the <see cref="T:System.Security.AccessControl.FileSystemRights" /> values that specifies the type of operation associated with the access rule.</param>
/// <param name="inheritanceFlags">One of the <see cref="T:System.Security.AccessControl.InheritanceFlags" /> values that specifies how access masks are propagated to child objects.</param>
/// <param name="propagationFlags">One of the <see cref="T:System.Security.AccessControl.PropagationFlags" /> values that specifies how Access Control Entries (ACEs) are propagated to child objects.</param>
/// <param name="type">One of the <see cref="T:System.Security.AccessControl.AccessControlType" /> values that specifies whether to allow or deny the operation.</param>
/// <exception cref="T:System.ArgumentException">The <paramref name="identity" /> parameter is not an <see cref="T:System.Security.Principal.IdentityReference" /> object.</exception>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="identity" /> parameter is null.</exception>
/// <exception cref="T:System.ArgumentOutOfRangeException">An incorrect enumeration was passed to the <paramref name="type " />parameter.-or-An incorrect enumeration was passed to the <paramref name="inheritanceFlags " />parameter.-or-An incorrect enumeration was passed to the <paramref name="propagationFlags " />parameter.</exception>
// Token: 0x06002D4E RID: 11598 RVA: 0x0009392C File Offset: 0x00091B2C
public FileSystemAccessRule(IdentityReference identity, FileSystemRights fileSystemRights, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType type)
: base(identity, (int)fileSystemRights, false, inheritanceFlags, propagationFlags, type)
{
this.rights = fileSystemRights;
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.FileSystemAccessRule" /> class using the name of a user account, a value that specifies the type of operation associated with the access rule, a value that determines how rights are inherited, a value that determines how rights are propagated, and a value that specifies whether to allow or deny the operation.</summary>
/// <param name="identity">The name of a user account.</param>
/// <param name="fileSystemRights">One of the <see cref="T:System.Security.AccessControl.FileSystemRights" /> values that specifies the type of operation associated with the access rule.</param>
/// <param name="inheritanceFlags">One of the <see cref="T:System.Security.AccessControl.InheritanceFlags" /> values that specifies how access masks are propagated to child objects.</param>
/// <param name="propagationFlags">One of the <see cref="T:System.Security.AccessControl.PropagationFlags" /> values that specifies how Access Control Entries (ACEs) are propagated to child objects.</param>
/// <param name="type">One of the <see cref="T:System.Security.AccessControl.AccessControlType" /> values that specifies whether to allow or deny the operation.</param>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="identity" /> parameter is null.</exception>
/// <exception cref="T:System.ArgumentOutOfRangeException">An incorrect enumeration was passed to the <paramref name="type " />parameter.-or-An incorrect enumeration was passed to the <paramref name="inheritanceFlags " />parameter.-or-An incorrect enumeration was passed to the <paramref name="propagationFlags " />parameter.</exception>
// Token: 0x06002D4F RID: 11599 RVA: 0x00093944 File Offset: 0x00091B44
public FileSystemAccessRule(string identity, FileSystemRights fileSystemRights, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType type)
: this(new SecurityIdentifier(identity), fileSystemRights, inheritanceFlags, propagationFlags, type)
{
}
/// <summary>Gets the <see cref="T:System.Security.AccessControl.FileSystemRights" /> flags associated with the current <see cref="T:System.Security.AccessControl.FileSystemAccessRule" /> object.</summary>
/// <returns>The <see cref="T:System.Security.AccessControl.FileSystemRights" /> flags associated with the current <see cref="T:System.Security.AccessControl.FileSystemAccessRule" /> object.</returns>
// Token: 0x170008DF RID: 2271
// (get) Token: 0x06002D50 RID: 11600 RVA: 0x00093958 File Offset: 0x00091B58
public FileSystemRights FileSystemRights
{
get
{
return this.rights;
}
}
// Token: 0x040011DE RID: 4574
private FileSystemRights rights;
}
}
@@ -0,0 +1,77 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Represents an abstraction of an access control entry (ACE) that defines an audit rule for a file or directory. This class cannot be inherited.</summary>
// Token: 0x020004C3 RID: 1219
public sealed class FileSystemAuditRule : AuditRule
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.FileSystemAuditRule" /> class using a reference to a user account, a value that specifies the type of operation associated with the audit rule, and a value that specifies when to perform auditing. </summary>
/// <param name="identity">An <see cref="T:System.Security.Principal.IdentityReference" /> object that encapsulates a reference to a user account.</param>
/// <param name="fileSystemRights">One of the <see cref="T:System.Security.AccessControl.FileSystemRights" /> values that specifies the type of operation associated with the audit rule. </param>
/// <param name="flags">One of the <see cref="T:System.Security.AccessControl.AuditFlags" /> values that specifies when to perform auditing.</param>
/// <exception cref="T:System.ArgumentException">The <paramref name="identity" /> parameter is not an <see cref="T:System.Security.Principal.IdentityReference" /> object.</exception>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="identity" /> parameter is null.</exception>
/// <exception cref="T:System.ArgumentOutOfRangeException">An incorrect enumeration was passed to the <paramref name="flags" /> parameter.-or-The <see cref="F:System.Security.AccessControl.AuditFlags.None" /> value was passed to the <paramref name="flags" /> parameter.</exception>
// Token: 0x06002D51 RID: 11601 RVA: 0x00093960 File Offset: 0x00091B60
public FileSystemAuditRule(IdentityReference identity, FileSystemRights fileSystemRights, AuditFlags flags)
: this(identity, fileSystemRights, InheritanceFlags.None, PropagationFlags.None, flags)
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.FileSystemAuditRule" /> class using a user account name, a value that specifies the type of operation associated with the audit rule, and a value that specifies when to perform auditing.</summary>
/// <param name="identity">The name of a user account.</param>
/// <param name="fileSystemRights">One of the <see cref="T:System.Security.AccessControl.FileSystemRights" /> values that specifies the type of operation associated with the audit rule. </param>
/// <param name="flags">One of the <see cref="T:System.Security.AccessControl.AuditFlags" /> values that specifies when to perform auditing.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">An incorrect enumeration was passed to the <paramref name="flags" /> parameter.-or-The <see cref="F:System.Security.AccessControl.AuditFlags.None" /> value was passed to the <paramref name="flags" /> parameter.</exception>
// Token: 0x06002D52 RID: 11602 RVA: 0x00093970 File Offset: 0x00091B70
public FileSystemAuditRule(string identity, FileSystemRights fileSystemRights, AuditFlags flags)
: this(new SecurityIdentifier(identity), fileSystemRights, flags)
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.FileSystemAuditRule" /> class using the name of a reference to a user account, a value that specifies the type of operation associated with the audit rule, a value that determines how rights are inherited, a value that determines how rights are propagated, and a value that specifies when to perform auditing. </summary>
/// <param name="identity">An <see cref="T:System.Security.Principal.IdentityReference" /> object that encapsulates a reference to a user account.</param>
/// <param name="fileSystemRights">One of the <see cref="T:System.Security.AccessControl.FileSystemRights" /> values that specifies the type of operation associated with the audit rule.</param>
/// <param name="inheritanceFlags">One of the <see cref="T:System.Security.AccessControl.InheritanceFlags" /> values that specifies how access masks are propagated to child objects.</param>
/// <param name="propagationFlags">One of the <see cref="T:System.Security.AccessControl.PropagationFlags" /> values that specifies how Access Control Entries (ACEs) are propagated to child objects.</param>
/// <param name="flags">One of the <see cref="T:System.Security.AccessControl.AuditFlags" /> values that specifies when to perform auditing.</param>
/// <exception cref="T:System.ArgumentException">The <paramref name="identity" /> parameter is not an <see cref="T:System.Security.Principal.IdentityReference" /> object.</exception>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="identity" /> parameter is null.</exception>
/// <exception cref="T:System.ArgumentOutOfRangeException">An incorrect enumeration was passed to the <paramref name="flags" /> parameter.-or-The <see cref="F:System.Security.AccessControl.AuditFlags.None" /> value was passed to the <paramref name="flags" /> parameter.</exception>
// Token: 0x06002D53 RID: 11603 RVA: 0x00093980 File Offset: 0x00091B80
public FileSystemAuditRule(IdentityReference identity, FileSystemRights fileSystemRights, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AuditFlags flags)
: base(identity, 0, false, inheritanceFlags, propagationFlags, flags)
{
this.rights = fileSystemRights;
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.FileSystemAuditRule" /> class using the name of a user account, a value that specifies the type of operation associated with the audit rule, a value that determines how rights are inherited, a value that determines how rights are propagated, and a value that specifies when to perform auditing. </summary>
/// <param name="identity">The name of a user account.</param>
/// <param name="fileSystemRights">One of the <see cref="T:System.Security.AccessControl.FileSystemRights" /> values that specifies the type of operation associated with the audit rule.</param>
/// <param name="inheritanceFlags">One of the <see cref="T:System.Security.AccessControl.InheritanceFlags" /> values that specifies how access masks are propagated to child objects.</param>
/// <param name="propagationFlags">One of the <see cref="T:System.Security.AccessControl.PropagationFlags" /> values that specifies how Access Control Entries (ACEs) are propagated to child objects.</param>
/// <param name="flags">One of the <see cref="T:System.Security.AccessControl.AuditFlags" /> values that specifies when to perform auditing.</param>
// Token: 0x06002D54 RID: 11604 RVA: 0x00093998 File Offset: 0x00091B98
public FileSystemAuditRule(string identity, FileSystemRights fileSystemRights, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AuditFlags flags)
: this(new SecurityIdentifier(identity), fileSystemRights, inheritanceFlags, propagationFlags, flags)
{
}
/// <summary>Gets the <see cref="T:System.Security.AccessControl.FileSystemRights" /> flags associated with the current <see cref="T:System.Security.AccessControl.FileSystemAuditRule" /> object.</summary>
/// <returns>The <see cref="T:System.Security.AccessControl.FileSystemRights" /> flags associated with the current <see cref="T:System.Security.AccessControl.FileSystemAuditRule" /> object.</returns>
// Token: 0x170008E0 RID: 2272
// (get) Token: 0x06002D55 RID: 11605 RVA: 0x000939AC File Offset: 0x00091BAC
public FileSystemRights FileSystemRights
{
get
{
return this.rights;
}
}
// Token: 0x040011DF RID: 4575
private FileSystemRights rights;
}
}
@@ -0,0 +1,80 @@
using System;
namespace System.Security.AccessControl
{
/// <summary>Defines the access rights to use when creating access and audit rules. </summary>
// Token: 0x020004C4 RID: 1220
[Flags]
public enum FileSystemRights
{
/// <summary>Specifies the right to read the contents of a directory.</summary>
// Token: 0x040011E1 RID: 4577
ListDirectory = 1,
/// <summary>Specifies the right to open and copy a file or folder. This does not include the right to read file system attributes, extended file system attributes, or access and audit rules.</summary>
// Token: 0x040011E2 RID: 4578
ReadData = 1,
/// <summary>Specifies the right to create a file. </summary>
// Token: 0x040011E3 RID: 4579
CreateFiles = 2,
/// <summary>Specifies the right to open and write to a file or folder. This does not include the right to open and write file system attributes, extended file system attributes, or access and audit rules.</summary>
// Token: 0x040011E4 RID: 4580
WriteData = 2,
/// <summary>Specifies the right to append data to the end of a file.</summary>
// Token: 0x040011E5 RID: 4581
AppendData = 4,
/// <summary>Specifies the right to create a folder. </summary>
// Token: 0x040011E6 RID: 4582
CreateDirectories = 4,
/// <summary>Specifies the right to open and copy extended file system attributes from a folder or file. For example, this value specifies the right to view author and content information. This does not include the right to read data, file system attributes, or access and audit rules.</summary>
// Token: 0x040011E7 RID: 4583
ReadExtendedAttributes = 8,
/// <summary>Specifies the right to open and write extended file system attributes to a folder or file. This does not include the ability to write data, attributes, or access and audit rules.</summary>
// Token: 0x040011E8 RID: 4584
WriteExtendedAttributes = 16,
/// <summary>Specifies the right to run an application file.</summary>
// Token: 0x040011E9 RID: 4585
ExecuteFile = 32,
/// <summary>Specifies the right to list the contents of a folder and to run applications contained within that folder.</summary>
// Token: 0x040011EA RID: 4586
Traverse = 32,
/// <summary>Specifies the right to delete a folder and any files contained within that folder.</summary>
// Token: 0x040011EB RID: 4587
DeleteSubdirectoriesAndFiles = 64,
/// <summary>Specifies the right to open and copy file system attributes from a folder or file. For example, this value specifies the right to view the file creation or modified date. This does not include the right to read data, extended file system attributes, or access and audit rules.</summary>
// Token: 0x040011EC RID: 4588
ReadAttributes = 128,
/// <summary>Specifies the right to open and write file system attributes to a folder or file. This does not include the ability to write data, extended attributes, or access and audit rules.</summary>
// Token: 0x040011ED RID: 4589
WriteAttributes = 256,
/// <summary>Specifies the right to create folders and files, and to add or remove data from files. This right includes the <see cref="F:System.Security.AccessControl.FileSystemRights.WriteData" /> right, <see cref="F:System.Security.AccessControl.FileSystemRights.AppendData" /> right, <see cref="F:System.Security.AccessControl.FileSystemRights.WriteExtendedAttributes" /> right, and <see cref="F:System.Security.AccessControl.FileSystemRights.WriteAttributes" /> right. </summary>
// Token: 0x040011EE RID: 4590
Write = 278,
/// <summary>Specifies the right to delete a folder or file. </summary>
// Token: 0x040011EF RID: 4591
Delete = 65536,
/// <summary>Specifies the right to open and copy access and audit rules from a folder or file. This does not include the right to read data, file system attributes, and extended file system attributes. </summary>
// Token: 0x040011F0 RID: 4592
ReadPermissions = 131072,
/// <summary>Specifies the right to open and copy folders or files as read-only. This right includes the <see cref="F:System.Security.AccessControl.FileSystemRights.ReadData" /> right, <see cref="F:System.Security.AccessControl.FileSystemRights.ReadExtendedAttributes" /> right, <see cref="F:System.Security.AccessControl.FileSystemRights.ReadAttributes" /> right, and <see cref="F:System.Security.AccessControl.FileSystemRights.ReadPermissions" /> right.</summary>
// Token: 0x040011F1 RID: 4593
Read = 131209,
/// <summary>Specifies the right to open and copy folders or files as read-only, and to run application files. This right includes the <see cref="F:System.Security.AccessControl.FileSystemRights.Read" /> right and the <see cref="F:System.Security.AccessControl.FileSystemRights.ExecuteFile" /> right.</summary>
// Token: 0x040011F2 RID: 4594
ReadAndExecute = 131241,
/// <summary>Specifies the right to read, write, list folder contents, delete folders and files, and run application files. This right includes the <see cref="F:System.Security.AccessControl.FileSystemRights.ReadAndExecute" /> right, the <see cref="F:System.Security.AccessControl.FileSystemRights.Write" /> right, and the <see cref="F:System.Security.AccessControl.FileSystemRights.Delete" /> right.</summary>
// Token: 0x040011F3 RID: 4595
Modify = 197055,
/// <summary>Specifies the right to change the security and audit rules associated with a file or folder.</summary>
// Token: 0x040011F4 RID: 4596
ChangePermissions = 262144,
/// <summary>Specifies the right to change the owner of a folder or file. Note that owners of a resource have full access to that resource.</summary>
// Token: 0x040011F5 RID: 4597
TakeOwnership = 524288,
/// <summary>Specifies whether the application can wait for a file handle to synchronize with the completion of an I/O operation.</summary>
// Token: 0x040011F6 RID: 4598
Synchronize = 1048576,
/// <summary>Specifies the right to exert full control over a folder or file, and to modify access control and audit rules. This value represents the right to do anything with a file and is the combination of all rights in this enumeration.</summary>
// Token: 0x040011F7 RID: 4599
FullControl = 2032127
}
}
@@ -0,0 +1,206 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Represents the access control and audit security for a file or directory.</summary>
// Token: 0x020004C5 RID: 1221
public abstract class FileSystemSecurity : NativeObjectSecurity
{
// Token: 0x06002D56 RID: 11606 RVA: 0x000939B4 File Offset: 0x00091BB4
internal FileSystemSecurity(bool isContainer)
: base(isContainer, ResourceType.FileObject)
{
}
// Token: 0x06002D57 RID: 11607 RVA: 0x000939C0 File Offset: 0x00091BC0
internal FileSystemSecurity(bool isContainer, string name, AccessControlSections includeSections)
: base(isContainer, ResourceType.FileObject, name, includeSections)
{
}
/// <summary>Gets the enumeration that the <see cref="T:System.Security.AccessControl.FileSystemSecurity" /> class uses to represent access rights.</summary>
/// <returns>A <see cref="T:System.Type" /> object representing the <see cref="T:System.Security.AccessControl.FileSystemRights" /> enumeration.</returns>
// Token: 0x170008E1 RID: 2273
// (get) Token: 0x06002D58 RID: 11608 RVA: 0x000939CC File Offset: 0x00091BCC
public override Type AccessRightType
{
get
{
return typeof(FileSystemRights);
}
}
/// <summary>Gets the enumeration that the <see cref="T:System.Security.AccessControl.FileSystemSecurity" /> class uses to represent access rules.</summary>
/// <returns>A <see cref="T:System.Type" /> object representing the <see cref="T:System.Security.AccessControl.FileSystemAccessRule" /> class.</returns>
// Token: 0x170008E2 RID: 2274
// (get) Token: 0x06002D59 RID: 11609 RVA: 0x000939D8 File Offset: 0x00091BD8
public override Type AccessRuleType
{
get
{
return typeof(FileSystemAccessRule);
}
}
/// <summary>Gets the type that the <see cref="T:System.Security.AccessControl.FileSystemSecurity" /> class uses to represent audit rules.</summary>
/// <returns>A <see cref="T:System.Type" /> object representing the <see cref="T:System.Security.AccessControl.FileSystemAuditRule" /> class.</returns>
// Token: 0x170008E3 RID: 2275
// (get) Token: 0x06002D5A RID: 11610 RVA: 0x000939E4 File Offset: 0x00091BE4
public override Type AuditRuleType
{
get
{
return typeof(FileSystemAuditRule);
}
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.FileSystemAccessRule" /> class that represents a new access control rule for the specified user, with the specified access rights, access control, and flags.</summary>
/// <returns>A new <see cref="T:System.Security.AccessControl.FileSystemAccessRule" /> object that represents a new access control rule for the specified user, with the specified access rights, access control, and flags.</returns>
/// <param name="identityReference">An <see cref="T:System.Security.Principal.IdentityReference" /> object that represents a user account.</param>
/// <param name="accessMask">An integer that specifies an access type.</param>
/// <param name="isInherited">true if the access rule is inherited; otherwise, false. </param>
/// <param name="inheritanceFlags">One of the <see cref="T:System.Security.AccessControl.InheritanceFlags" /> values that specifies how to propagate access masks to child objects.</param>
/// <param name="propagationFlags">One of the <see cref="T:System.Security.AccessControl.PropagationFlags" /> values that specifies how to propagate Access Control Entries (ACEs) to child objects.</param>
/// <param name="type">One of the <see cref="T:System.Security.AccessControl.AccessControlType" /> values that specifies whether access is allowed or denied.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="accessMask" />, <paramref name="inheritanceFlags" />, <paramref name="propagationFlags" />, or <paramref name="type" /> parameters specify an invalid value.</exception>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="identityReference" /> parameter is null. -or-The <paramref name="accessMask" /> parameter is zero.</exception>
/// <exception cref="T:System.ArgumentException">The <paramref name="identityReference" /> parameter is neither of type <see cref="T:System.Security.Principal.SecurityIdentifier" />, nor of a type such as <see cref="T:System.Security.Principal.NTAccount" /> that can be converted to type <see cref="T:System.Security.Principal.SecurityIdentifier" />.</exception>
// Token: 0x06002D5B RID: 11611 RVA: 0x000939F0 File Offset: 0x00091BF0
[MonoTODO]
public sealed override AccessRule AccessRuleFactory(IdentityReference identityReference, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType type)
{
return new FileSystemAccessRule(identityReference, (FileSystemRights)accessMask, inheritanceFlags, propagationFlags, type);
}
/// <summary>Adds the specified access control list (ACL) permission to the current file or directory.</summary>
/// <param name="rule">A <see cref="T:System.Security.AccessControl.FileSystemAccessRule" /> object that represents an access control list (ACL) permission to add to a file or directory. </param>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="rule" /> parameter is null.</exception>
// Token: 0x06002D5C RID: 11612 RVA: 0x00093A00 File Offset: 0x00091C00
[MonoTODO]
public void AddAccessRule(FileSystemAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all matching allow or deny access control list (ACL) permissions from the current file or directory.</summary>
/// <returns>true if the access rule was removed; otherwise, false.</returns>
/// <param name="rule">A <see cref="T:System.Security.AccessControl.FileSystemAccessRule" /> object that represents an access control list (ACL) permission to remove from a file or directory.</param>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="rule" /> parameter is null.</exception>
// Token: 0x06002D5D RID: 11613 RVA: 0x00093A08 File Offset: 0x00091C08
[MonoTODO]
public bool RemoveAccessRule(FileSystemAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all access control list (ACL) permissions for the specified user from the current file or directory.</summary>
/// <param name="rule">A <see cref="T:System.Security.AccessControl.FileSystemAccessRule" /> object that specifies a user whose access control list (ACL) permissions should be removed from a file or directory.</param>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="rule" /> parameter is null.</exception>
// Token: 0x06002D5E RID: 11614 RVA: 0x00093A10 File Offset: 0x00091C10
[MonoTODO]
public void RemoveAccessRuleAll(FileSystemAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes a single matching allow or deny access control list (ACL) permission from the current file or directory.</summary>
/// <param name="rule">A <see cref="T:System.Security.AccessControl.FileSystemAccessRule" /> object that specifies a user whose access control list (ACL) permissions should be removed from a file or directory.</param>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="rule" /> parameter is null.</exception>
// Token: 0x06002D5F RID: 11615 RVA: 0x00093A18 File Offset: 0x00091C18
[MonoTODO]
public void RemoveAccessRuleSpecific(FileSystemAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Adds the specified access control list (ACL) permission to the current file or directory and removes all matching ACL permissions.</summary>
/// <param name="rule">A <see cref="T:System.Security.AccessControl.FileSystemAccessRule" /> object that represents an access control list (ACL) permission to add to a file or directory.</param>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="rule" /> parameter is null.</exception>
// Token: 0x06002D60 RID: 11616 RVA: 0x00093A20 File Offset: 0x00091C20
[MonoTODO]
public void ResetAccessRule(FileSystemAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Sets the specified access control list (ACL) permission for the current file or directory. </summary>
/// <param name="rule">A <see cref="T:System.Security.AccessControl.FileSystemAccessRule" /> object that represents an access control list (ACL) permission to set for a file or directory.</param>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="rule" /> parameter is null.</exception>
// Token: 0x06002D61 RID: 11617 RVA: 0x00093A28 File Offset: 0x00091C28
[MonoTODO]
public void SetAccessRule(FileSystemAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.FileSystemAuditRule" /> class representing the specified audit rule for the specified user.</summary>
/// <returns>A new <see cref="T:System.Security.AccessControl.FileSystemAuditRule" /> object representing the specified audit rule for the specified user.</returns>
/// <param name="identityReference">An <see cref="T:System.Security.Principal.IdentityReference" /> object that represents a user account.</param>
/// <param name="accessMask">An integer that specifies an access type.</param>
/// <param name="isInherited">true if the access rule is inherited; otherwise, false. </param>
/// <param name="inheritanceFlags">One of the <see cref="T:System.Security.AccessControl.InheritanceFlags" /> values that specifies how to propagate access masks to child objects.</param>
/// <param name="propagationFlags">One of the <see cref="T:System.Security.AccessControl.PropagationFlags" /> values that specifies how to propagate Access Control Entries (ACEs) to child objects.</param>
/// <param name="flags">One of the <see cref="T:System.Security.AccessControl.AuditFlags" /> values that specifies the type of auditing to perform.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="accessMask" />, <paramref name="inheritanceFlags" />, <paramref name="propagationFlags" />, or <paramref name="flags" /> properties specify an invalid value.</exception>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="identityReference" /> property is null. -or-The <paramref name="accessMask" /> property is zero.</exception>
/// <exception cref="T:System.ArgumentException">The <paramref name="identityReference" /> property is neither of type <see cref="T:System.Security.Principal.SecurityIdentifier" />, nor of a type such as <see cref="T:System.Security.Principal.NTAccount" /> that can be converted to type <see cref="T:System.Security.Principal.SecurityIdentifier" />.</exception>
// Token: 0x06002D62 RID: 11618 RVA: 0x00093A30 File Offset: 0x00091C30
[MonoTODO]
public sealed override AuditRule AuditRuleFactory(IdentityReference identityReference, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AuditFlags flags)
{
return new FileSystemAuditRule(identityReference, (FileSystemRights)accessMask, inheritanceFlags, propagationFlags, flags);
}
/// <summary>Adds the specified audit rule to the current file or directory.</summary>
/// <param name="rule">A <see cref="T:System.Security.AccessControl.FileSystemAuditRule" /> object that represents an audit rule to add to a file or directory.</param>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="rule" /> parameter is null.</exception>
// Token: 0x06002D63 RID: 11619 RVA: 0x00093A40 File Offset: 0x00091C40
[MonoTODO]
public void AddAuditRule(FileSystemAuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all matching allow or deny audit rules from the current file or directory.</summary>
/// <returns>true if the audit rule was removed; otherwise, false</returns>
/// <param name="rule">A <see cref="T:System.Security.AccessControl.FileSystemAuditRule" /> object that represents an audit rule to remove from a file or directory.</param>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="rule" /> parameter is null.</exception>
// Token: 0x06002D64 RID: 11620 RVA: 0x00093A48 File Offset: 0x00091C48
[MonoTODO]
public bool RemoveAuditRule(FileSystemAuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all audit rules for the specified user from the current file or directory.</summary>
/// <param name="rule">A <see cref="T:System.Security.AccessControl.FileSystemAuditRule" /> object that specifies a user whose audit rules should be removed from a file or directory.</param>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="rule" /> parameter is null.</exception>
// Token: 0x06002D65 RID: 11621 RVA: 0x00093A50 File Offset: 0x00091C50
[MonoTODO]
public void RemoveAuditRuleAll(FileSystemAuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes a single matching allow or deny audit rule from the current file or directory.</summary>
/// <param name="rule">A <see cref="T:System.Security.AccessControl.FileSystemAuditRule" /> object that represents an audit rule to remove from a file or directory.</param>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="rule" /> parameter is null.</exception>
// Token: 0x06002D66 RID: 11622 RVA: 0x00093A58 File Offset: 0x00091C58
[MonoTODO]
public void RemoveAuditRuleSpecific(FileSystemAuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Sets the specified audit rule for the current file or directory.</summary>
/// <param name="rule">A <see cref="T:System.Security.AccessControl.FileSystemAuditRule" /> object that represents an audit rule to set for a file or directory.</param>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="rule" /> parameter is null.</exception>
// Token: 0x06002D67 RID: 11623 RVA: 0x00093A60 File Offset: 0x00091C60
[MonoTODO]
public void SetAuditRule(FileSystemAuditRule rule)
{
throw new NotImplementedException();
}
}
}
@@ -0,0 +1,201 @@
using System;
namespace System.Security.AccessControl
{
/// <summary>Represents an Access Control Entry (ACE), and is the base class for all other ACE classes.</summary>
// Token: 0x020004C6 RID: 1222
public abstract class GenericAce
{
// Token: 0x06002D68 RID: 11624 RVA: 0x00093A68 File Offset: 0x00091C68
internal GenericAce(InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags)
{
this.inheritance = inheritanceFlags;
this.propagation = propagationFlags;
}
// Token: 0x06002D69 RID: 11625 RVA: 0x00093A80 File Offset: 0x00091C80
internal GenericAce(AceType type)
{
if (type <= AceType.SystemAlarmCallbackObject)
{
throw new ArgumentOutOfRangeException("type");
}
this.ace_type = type;
}
/// <summary>Gets or sets the <see cref="T:System.Security.AccessControl.AceFlags" /> associated with this <see cref="T:System.Security.AccessControl.GenericAce" /> object.</summary>
/// <returns>The <see cref="T:System.Security.AccessControl.AceFlags" /> associated with this <see cref="T:System.Security.AccessControl.GenericAce" /> object.</returns>
// Token: 0x170008E4 RID: 2276
// (get) Token: 0x06002D6A RID: 11626 RVA: 0x00093AB0 File Offset: 0x00091CB0
// (set) Token: 0x06002D6B RID: 11627 RVA: 0x00093AB8 File Offset: 0x00091CB8
public AceFlags AceFlags
{
get
{
return this.aceflags;
}
set
{
this.aceflags = value;
}
}
/// <summary>Gets the type of this Access Control Entry (ACE).</summary>
/// <returns>The type of this ACE.</returns>
// Token: 0x170008E5 RID: 2277
// (get) Token: 0x06002D6C RID: 11628 RVA: 0x00093AC4 File Offset: 0x00091CC4
public AceType AceType
{
get
{
return this.ace_type;
}
}
/// <summary>Gets the audit information associated with this Access Control Entry (ACE).</summary>
/// <returns>The audit information associated with this Access Control Entry (ACE).</returns>
// Token: 0x170008E6 RID: 2278
// (get) Token: 0x06002D6D RID: 11629 RVA: 0x00093ACC File Offset: 0x00091CCC
public AuditFlags AuditFlags
{
get
{
AuditFlags auditFlags = AuditFlags.None;
if ((byte)(this.aceflags & AceFlags.SuccessfulAccess) != 0)
{
auditFlags |= AuditFlags.Success;
}
if ((byte)(this.aceflags & AceFlags.FailedAccess) != 0)
{
auditFlags |= AuditFlags.Failure;
}
return auditFlags;
}
}
/// <summary>Gets the length, in bytes, of the binary representation of the current <see cref="T:System.Security.AccessControl.GenericAce" /> object. This length should be used before marshaling the ACL into a binary array with the <see cref="M:System.Security.AccessControl.GenericAce.GetBinaryForm" /> method.</summary>
/// <returns>The length, in bytes, of the binary representation of the current <see cref="T:System.Security.AccessControl.GenericAce" /> object.</returns>
// Token: 0x170008E7 RID: 2279
// (get) Token: 0x06002D6E RID: 11630
public abstract int BinaryLength { get; }
/// <summary>Gets flags that specify the inheritance properties of this Access Control Entry (ACE).</summary>
/// <returns>Flags that specify the inheritance properties of this ACE.</returns>
// Token: 0x170008E8 RID: 2280
// (get) Token: 0x06002D6F RID: 11631 RVA: 0x00093B08 File Offset: 0x00091D08
public InheritanceFlags InheritanceFlags
{
get
{
return this.inheritance;
}
}
/// <summary>Gets a Boolean value that specifies whether this Access Control Entry (ACE) is inherited or is set explicitly.</summary>
/// <returns>true if this ACE is inherited; otherwise, false.</returns>
// Token: 0x170008E9 RID: 2281
// (get) Token: 0x06002D70 RID: 11632 RVA: 0x00093B10 File Offset: 0x00091D10
[MonoTODO]
public bool IsInherited
{
get
{
return false;
}
}
/// <summary>Gets flags that specify the inheritance propagation properties of this Access Control Entry (ACE).</summary>
/// <returns>Flags that specify the inheritance propagation properties of this ACE.</returns>
// Token: 0x170008EA RID: 2282
// (get) Token: 0x06002D71 RID: 11633 RVA: 0x00093B14 File Offset: 0x00091D14
public PropagationFlags PropagationFlags
{
get
{
return this.propagation;
}
}
/// <summary>Creates a deep copy of this Access Control Entry (ACE).</summary>
/// <returns>The <see cref="T:System.Security.AccessControl.GenericAce" /> object that this method creates.</returns>
// Token: 0x06002D72 RID: 11634 RVA: 0x00093B1C File Offset: 0x00091D1C
[MonoTODO]
public GenericAce Copy()
{
throw new NotImplementedException();
}
/// <summary>Creates a <see cref="T:System.Security.AccessControl.GenericAce" /> object from the specified binary data.</summary>
/// <returns>The <see cref="T:System.Security.AccessControl.GenericAce" /> object this method creates.</returns>
/// <param name="binaryForm">The binary data from which to create the new <see cref="T:System.Security.AccessControl.GenericAce" /> object.</param>
/// <param name="offset">The offset at which to begin unmarshaling.</param>
// Token: 0x06002D73 RID: 11635 RVA: 0x00093B24 File Offset: 0x00091D24
[MonoTODO]
public static GenericAce CreateFromBinaryForm(byte[] binaryForm, int offset)
{
throw new NotImplementedException();
}
/// <summary>Determines whether the specified <see cref="T:System.Security.AccessControl.GenericAce" /> object is equal to the current <see cref="T:System.Security.AccessControl.GenericAce" /> object.</summary>
/// <returns>true if the specified <see cref="T:System.Security.AccessControl.GenericAce" /> object is equal to the current <see cref="T:System.Security.AccessControl.GenericAce" /> object; otherwise, false.</returns>
/// <param name="o">The <see cref="T:System.Security.AccessControl.GenericAce" /> object to compare to the current <see cref="T:System.Security.AccessControl.GenericAce" /> object.</param>
// Token: 0x06002D74 RID: 11636 RVA: 0x00093B2C File Offset: 0x00091D2C
[MonoTODO]
public sealed override bool Equals(object o)
{
throw new NotImplementedException();
}
/// <summary>Marshals the contents of the <see cref="T:System.Security.AccessControl.GenericAce" /> object into the specified byte array beginning at the specified offset.</summary>
/// <param name="binaryForm">The byte array into which the contents of the <see cref="T:System.Security.AccessControl.GenericAce" /> is marshaled.</param>
/// <param name="offset">The offset at which to start marshaling.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="offset" /> is negative or too high to allow the entire <see cref="T:System.Security.AccessControl.GenericAcl" /> to be copied into <paramref name="array" />.</exception>
// Token: 0x06002D75 RID: 11637
[MonoTODO]
public abstract void GetBinaryForm(byte[] binaryForm, int offset);
/// <summary>Serves as a hash function for the <see cref="T:System.Security.AccessControl.GenericAce" /> class. The <see cref="M:System.Security.AccessControl.GenericAce.GetHashCode" /> method is suitable for use in hashing algorithms and data structures like a hash table.</summary>
/// <returns>A hash code for the current <see cref="T:System.Security.AccessControl.GenericAce" /> object.</returns>
// Token: 0x06002D76 RID: 11638 RVA: 0x00093B34 File Offset: 0x00091D34
[MonoTODO]
public sealed override int GetHashCode()
{
throw new NotImplementedException();
}
/// <summary>Determines whether the specified <see cref="T:System.Security.AccessControl.GenericAce" /> objects are considered equal.</summary>
/// <returns>true if the two <see cref="T:System.Security.AccessControl.GenericAce" /> objects are equal; otherwise, false.</returns>
/// <param name="left">The first <see cref="T:System.Security.AccessControl.GenericAce" /> object to compare.</param>
/// <param name="right">The second <see cref="T:System.Security.AccessControl.GenericAce" /> to compare.</param>
// Token: 0x06002D77 RID: 11639 RVA: 0x00093B3C File Offset: 0x00091D3C
[MonoTODO]
public static bool operator ==(GenericAce left, GenericAce right)
{
throw new NotImplementedException();
}
/// <summary>Determines whether the specified <see cref="T:System.Security.AccessControl.GenericAce" /> objects are considered unequal.</summary>
/// <returns>true if the two <see cref="T:System.Security.AccessControl.GenericAce" /> objects are unequal; otherwise, false.</returns>
/// <param name="left">The first <see cref="T:System.Security.AccessControl.GenericAce" /> object to compare.</param>
/// <param name="right">The second <see cref="T:System.Security.AccessControl.GenericAce" /> to compare.</param>
// Token: 0x06002D78 RID: 11640 RVA: 0x00093B44 File Offset: 0x00091D44
[MonoTODO]
public static bool operator !=(GenericAce left, GenericAce right)
{
throw new NotImplementedException();
}
// Token: 0x040011F8 RID: 4600
private InheritanceFlags inheritance;
// Token: 0x040011F9 RID: 4601
private PropagationFlags propagation;
// Token: 0x040011FA RID: 4602
private AceFlags aceflags;
// Token: 0x040011FB RID: 4603
private AceType ace_type;
}
}
@@ -0,0 +1,123 @@
using System;
using System.Collections;
namespace System.Security.AccessControl
{
/// <summary>Represents an access control list (ACL) and is the base class for the <see cref="T:System.Security.AccessControl.CommonAcl" />, <see cref="T:System.Security.AccessControl.DiscretionaryAcl" />, <see cref="T:System.Security.AccessControl.RawAcl" />, and <see cref="T:System.Security.AccessControl.SystemAcl" /> classes.</summary>
// Token: 0x020004C7 RID: 1223
public abstract class GenericAcl : IEnumerable, ICollection
{
/// <summary>Copies each <see cref="T:System.Security.AccessControl.GenericAce" /> of the current <see cref="T:System.Security.AccessControl.GenericAcl" /> into the specified array.</summary>
/// <param name="array">The array into which copies of the <see cref="T:System.Security.AccessControl.GenericAce" /> objects contained by the current <see cref="T:System.Security.AccessControl.GenericAcl" /> are placed.</param>
/// <param name="index">The zero-based index of <paramref name="array" /> where the copying begins.</param>
// Token: 0x06002D7B RID: 11643 RVA: 0x00093B6C File Offset: 0x00091D6C
void ICollection.CopyTo(Array array, int index)
{
this.CopyTo((GenericAce[])array, index);
}
/// <summary>Returns a new instance of the <see cref="T:System.Security.AccessControl.AceEnumerator" /> class cast as an instance of the <see cref="T:System.Collections.IEnumerator" /> interface.</summary>
/// <returns>A new <see cref="T:System.Security.AccessControl.AceEnumerator" /> object, cast as an instance of the <see cref="T:System.Collections.IEnumerator" /> interface.</returns>
// Token: 0x06002D7C RID: 11644 RVA: 0x00093B7C File Offset: 0x00091D7C
IEnumerator IEnumerable.GetEnumerator()
{
return this.GetEnumerator();
}
/// <summary>Gets the length, in bytes, of the binary representation of the current <see cref="T:System.Security.AccessControl.GenericAcl" /> object. This length should be used before marshaling the ACL into a binary array with the <see cref="M:System.Security.AccessControl.GenericAcl.GetBinaryForm" /> method.</summary>
/// <returns>The length, in bytes, of the binary representation of the current <see cref="T:System.Security.AccessControl.GenericAcl" /> object.</returns>
// Token: 0x170008EB RID: 2283
// (get) Token: 0x06002D7D RID: 11645
public abstract int BinaryLength { get; }
/// <summary>Gets the number of access control entries (ACEs) in the current <see cref="T:System.Security.AccessControl.GenericAcl" /> object.</summary>
/// <returns>The number of ACEs in the current <see cref="T:System.Security.AccessControl.GenericAcl" /> object.</returns>
// Token: 0x170008EC RID: 2284
// (get) Token: 0x06002D7E RID: 11646
public abstract int Count { get; }
/// <summary>This property is always set to false. It is implemented only because it is required for the implementation of the <see cref="T:System.Collections.ICollection" /> interface.</summary>
/// <returns>Always false.</returns>
// Token: 0x170008ED RID: 2285
// (get) Token: 0x06002D7F RID: 11647 RVA: 0x00093B84 File Offset: 0x00091D84
public bool IsSynchronized
{
get
{
return false;
}
}
/// <summary>Gets or sets the <see cref="T:System.Security.AccessControl.GenericAce" /> at the specified index.</summary>
/// <returns>The <see cref="T:System.Security.AccessControl.GenericAce" /> at the specified index.</returns>
/// <param name="index">The zero-based index of the <see cref="T:System.Security.AccessControl.GenericAce" /> to get or set.</param>
// Token: 0x170008EE RID: 2286
public abstract GenericAce this[int index] { get; set; }
/// <summary>Gets the revision level of the <see cref="T:System.Security.AccessControl.GenericAcl" />.</summary>
/// <returns>A byte value that specifies the revision level of the <see cref="T:System.Security.AccessControl.GenericAcl" />.</returns>
// Token: 0x170008EF RID: 2287
// (get) Token: 0x06002D82 RID: 11650
public abstract byte Revision { get; }
/// <summary>This property always returns null. It is implemented only because it is required for the implementation of the <see cref="T:System.Collections.ICollection" /> interface.</summary>
/// <returns>Always returns null.</returns>
// Token: 0x170008F0 RID: 2288
// (get) Token: 0x06002D83 RID: 11651 RVA: 0x00093B88 File Offset: 0x00091D88
public object SyncRoot
{
get
{
return this;
}
}
/// <summary>Copies each <see cref="T:System.Security.AccessControl.GenericAce" /> of the current <see cref="T:System.Security.AccessControl.GenericAcl" /> into the specified array.</summary>
/// <param name="array">The array into which copies of the <see cref="T:System.Security.AccessControl.GenericAce" /> objects contained by the current <see cref="T:System.Security.AccessControl.GenericAcl" /> are placed.</param>
/// <param name="index">The zero-based index of <paramref name="array" /> where the copying begins.</param>
// Token: 0x06002D84 RID: 11652 RVA: 0x00093B8C File Offset: 0x00091D8C
public void CopyTo(GenericAce[] array, int index)
{
if (array == null)
{
throw new ArgumentNullException("array");
}
if (index < 0 || array.Length - index < this.Count)
{
throw new ArgumentOutOfRangeException("index", "Index must be non-negative integer and must not exceed array length - count");
}
for (int i = 0; i < this.Count; i++)
{
array[i + index] = this[i];
}
}
/// <summary>Marshals the contents of the <see cref="T:System.Security.AccessControl.GenericAcl" /> object into the specified byte array beginning at the specified offset.</summary>
/// <param name="binaryForm">The byte array into which the contents of the <see cref="T:System.Security.AccessControl.GenericAcl" /> is marshaled.</param>
/// <param name="offset">The offset at which to start marshaling.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="offset" /> is negative or too high to allow the entire <see cref="T:System.Security.AccessControl.GenericAcl" /> to be copied into <paramref name="array" />.</exception>
// Token: 0x06002D85 RID: 11653
public abstract void GetBinaryForm(byte[] binaryForm, int offset);
/// <summary>Returns a new instance of the <see cref="T:System.Security.AccessControl.AceEnumerator" /> class.</summary>
/// <returns>The <see cref="T:Security.AccessControl.AceEnumerator" /> that this method returns.</returns>
// Token: 0x06002D86 RID: 11654 RVA: 0x00093BF4 File Offset: 0x00091DF4
public AceEnumerator GetEnumerator()
{
return new AceEnumerator(this);
}
/// <summary>The revision level of the current <see cref="T:System.Security.AccessControl.GenericAcl" />. This value is returned by the <see cref="P:System.Security.AccessControl.GenericAcl.Revision" /> property for Access Control Lists (ACLs) that are not associated with Directory Services objects.</summary>
// Token: 0x040011FC RID: 4604
public static readonly byte AclRevision = 2;
/// <summary>The revision level of the current <see cref="T:System.Security.AccessControl.GenericAcl" />. This value is returned by the <see cref="P:System.Security.AccessControl.GenericAcl.Revision" /> property for Access Control Lists (ACLs) that are associated with Directory Services objects.</summary>
// Token: 0x040011FD RID: 4605
public static readonly byte AclRevisionDS = 4;
/// <summary>The maximum allowed binary length of a <see cref="T:System.Security.AccessControl.GenericAcl" /> object.</summary>
// Token: 0x040011FE RID: 4606
public static readonly int MaxBinaryLength = 65536;
}
}
@@ -0,0 +1,82 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Represents a security descriptor. A security descriptor includes an owner, a primary group, a Discretionary Access Control List (DACL), and a System Access Control List (SACL).</summary>
// Token: 0x020004C8 RID: 1224
public abstract class GenericSecurityDescriptor
{
/// <summary>Gets the length, in bytes, of the binary representation of the current <see cref="T:System.Security.AccessControl.GenericSecurityDescriptor" /> object. This length should be used before marshaling the ACL into a binary array with the <see cref="M:System.Security.AccessControl.GenericSecurityDescriptor.GetBinaryForm" /> method.</summary>
/// <returns>The length, in bytes, of the binary representation of the current <see cref="T:System.Security.AccessControl.GenericSecurityDescriptor" /> object.</returns>
// Token: 0x170008F1 RID: 2289
// (get) Token: 0x06002D88 RID: 11656 RVA: 0x00093C04 File Offset: 0x00091E04
public int BinaryLength
{
get
{
throw new NotImplementedException();
}
}
/// <summary>Gets values that specify behavior of the <see cref="T:System.Security.AccessControl.GenericSecurityDescriptor" /> object.</summary>
/// <returns>One or more values of the <see cref="T:System.Security.AccessControl.ControlFlags" /> enumeration combined with a logical OR operation.</returns>
// Token: 0x170008F2 RID: 2290
// (get) Token: 0x06002D89 RID: 11657
public abstract ControlFlags ControlFlags { get; }
/// <summary>Gets or sets the primary group for this <see cref="T:System.Security.AccessControl.GenericSecurityDescriptor" /> object.</summary>
/// <returns>The primary group for this <see cref="T:System.Security.AccessControl.GenericSecurityDescriptor" /> object.</returns>
// Token: 0x170008F3 RID: 2291
// (get) Token: 0x06002D8A RID: 11658
// (set) Token: 0x06002D8B RID: 11659
public abstract SecurityIdentifier Group { get; set; }
/// <summary>Gets or sets the owner of the object associated with this <see cref="T:System.Security.AccessControl.GenericSecurityDescriptor" /> object.</summary>
/// <returns>The owner of the object associated with this <see cref="T:System.Security.AccessControl.GenericSecurityDescriptor" /> object.</returns>
// Token: 0x170008F4 RID: 2292
// (get) Token: 0x06002D8C RID: 11660
// (set) Token: 0x06002D8D RID: 11661
public abstract SecurityIdentifier Owner { get; set; }
/// <summary>Gets the revision level of the <see cref="T:System.Security.AccessControl.GenericSecurityDescriptor" /> object.</summary>
/// <returns>A byte value that specifies the revision level of the <see cref="T:System.Security.AccessControl.GenericSecurityDescriptor" />.</returns>
// Token: 0x170008F5 RID: 2293
// (get) Token: 0x06002D8E RID: 11662 RVA: 0x00093C0C File Offset: 0x00091E0C
public static byte Revision
{
get
{
throw new NotImplementedException();
}
}
/// <summary>Returns an array of byte values that represents the information contained in this <see cref="T:System.Security.AccessControl.GenericSecurityDescriptor" /> object.</summary>
/// <param name="binaryForm">The byte array into which the contents of the <see cref="T:System.Security.AccessControl.GenericSecurityDescriptor" /> is marshaled.</param>
/// <param name="offset">The offset at which to start marshaling.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="offset" /> is negative or too high to allow the entire <see cref="T:System.Security.AccessControl.GenericSecurityDescriptor" /> to be copied into <paramref name="array" />.</exception>
// Token: 0x06002D8F RID: 11663 RVA: 0x00093C14 File Offset: 0x00091E14
public void GetBinaryForm(byte[] binaryForm, int offset)
{
throw new NotImplementedException();
}
/// <summary>Returns the Security Descriptor Definition Language (SDDL) representation of the specified sections of the security descriptor that this <see cref="T:System.Security.AccessControl.GenericSecurityDescriptor" /> object represents.</summary>
/// <returns>The SDDL representation of the specified sections of the security descriptor associated with this <see cref="T:System.Security.AccessControl.GenericSecurityDescriptor" /> object.</returns>
/// <param name="includeSections">Specifies which sections (access rules, audit rules, primary group, owner) of the security descriptor to get.</param>
// Token: 0x06002D90 RID: 11664 RVA: 0x00093C1C File Offset: 0x00091E1C
public string GetSddlForm(AccessControlSections includeSections)
{
throw new NotImplementedException();
}
/// <summary>Returns a boolean value that specifies whether the security descriptor associated with this <see cref="T:System.Security.AccessControl.GenericSecurityDescriptor" /> object can be converted to the Security Descriptor Definition Language (SDDL) format.</summary>
/// <returns>true if the security descriptor associated with this <see cref="T:System.Security.AccessControl.GenericSecurityDescriptor" /> object can be converted to the Security Descriptor Definition Language (SDDL) format; otherwise, false.</returns>
// Token: 0x06002D91 RID: 11665 RVA: 0x00093C24 File Offset: 0x00091E24
public static bool IsSddlConversionSupported()
{
throw new NotImplementedException();
}
}
}
@@ -0,0 +1,20 @@
using System;
namespace System.Security.AccessControl
{
/// <summary>Inheritance flags specify the semantics of inheritance for access control entries (ACEs).</summary>
// Token: 0x020004C9 RID: 1225
[Flags]
public enum InheritanceFlags
{
/// <summary>The ACE is not inherited by child objects.</summary>
// Token: 0x04001200 RID: 4608
None = 0,
/// <summary>The ACE is inherited by child container objects.</summary>
// Token: 0x04001201 RID: 4609
ContainerInherit = 1,
/// <summary>The ACE is inherited by child leaf objects.</summary>
// Token: 0x04001202 RID: 4610
ObjectInherit = 2
}
}
@@ -0,0 +1,56 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Encapsulates all Access Control Entry (ACE) types currently defined by Microsoft Corporation. All <see cref="T:System.Security.AccessControl.KnownAce" /> objects contain a 32-bit access mask and a <see cref="T:System.Security.Principal.SecurityIdentifier" /> object.</summary>
// Token: 0x020004CA RID: 1226
public abstract class KnownAce : GenericAce
{
// Token: 0x06002D92 RID: 11666 RVA: 0x00093C2C File Offset: 0x00091E2C
internal KnownAce(InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags)
: base(inheritanceFlags, propagationFlags)
{
}
/// <summary>Gets or sets the access mask for this <see cref="T:System.Security.AccessControl.KnownAce" /> object.</summary>
/// <returns>The access mask for this <see cref="T:System.Security.AccessControl.KnownAce" /> object.</returns>
// Token: 0x170008F6 RID: 2294
// (get) Token: 0x06002D93 RID: 11667 RVA: 0x00093C38 File Offset: 0x00091E38
// (set) Token: 0x06002D94 RID: 11668 RVA: 0x00093C40 File Offset: 0x00091E40
public int AccessMask
{
get
{
return this.access_mask;
}
set
{
this.access_mask = value;
}
}
/// <summary>Gets or sets the <see cref="T:System.Security.Principal.SecurityIdentifier" /> object associated with this <see cref="T:System.Security.AccessControl.KnownAce" /> object.</summary>
/// <returns>The <see cref="T:System.Security.Principal.SecurityIdentifier" /> object associated with this <see cref="T:System.Security.AccessControl.KnownAce" /> object.</returns>
// Token: 0x170008F7 RID: 2295
// (get) Token: 0x06002D95 RID: 11669 RVA: 0x00093C4C File Offset: 0x00091E4C
// (set) Token: 0x06002D96 RID: 11670 RVA: 0x00093C54 File Offset: 0x00091E54
public SecurityIdentifier SecurityIdentifier
{
get
{
return this.identifier;
}
set
{
this.identifier = value;
}
}
// Token: 0x04001203 RID: 4611
private int access_mask;
// Token: 0x04001204 RID: 4612
private SecurityIdentifier identifier;
}
}
@@ -0,0 +1,58 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Represents a set of access rights allowed or denied for a user or group. This class cannot be inherited.</summary>
// Token: 0x020004CB RID: 1227
public sealed class MutexAccessRule : AccessRule
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.MutexAccessRule" /> class, specifying the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied.</summary>
/// <param name="identity">The user or group the rule applies to. Must be of type <see cref="T:System.Security.Principal.SecurityIdentifier" /> or a type such as <see cref="T:System.Security.Principal.NTAccount" /> that can be converted to type <see cref="T:System.Security.Principal.SecurityIdentifier" />.</param>
/// <param name="eventRights">A bitwise combination of <see cref="T:System.Security.AccessControl.MutexRights" /> values specifying the rights allowed or denied.</param>
/// <param name="type">One of the <see cref="T:System.Security.AccessControl.AccessControlType" /> values specifying whether the rights are allowed or denied.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="eventRights" /> specifies an invalid value.-or-<paramref name="type" /> specifies an invalid value.</exception>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="identity" /> is null. -or-<paramref name="eventRights" /> is zero.</exception>
/// <exception cref="T:System.ArgumentException">
/// <paramref name="identity" /> is neither of type <see cref="T:System.Security.Principal.SecurityIdentifier" /> nor of a type such as <see cref="T:System.Security.Principal.NTAccount" /> that can be converted to type <see cref="T:System.Security.Principal.SecurityIdentifier" />.</exception>
// Token: 0x06002D97 RID: 11671 RVA: 0x00093C60 File Offset: 0x00091E60
public MutexAccessRule(IdentityReference identity, MutexRights eventRights, AccessControlType type)
: base(identity, 0, false, InheritanceFlags.None, PropagationFlags.None, type)
{
this.rights = eventRights;
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.MutexAccessRule" /> class, specifying the name of the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied.</summary>
/// <param name="identity">The name of the user or group the rule applies to.</param>
/// <param name="eventRights">A bitwise combination of <see cref="T:System.Security.AccessControl.MutexRights" /> values specifying the rights allowed or denied.</param>
/// <param name="type">One of the <see cref="T:System.Security.AccessControl.AccessControlType" /> values specifying whether the rights are allowed or denied.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="eventRights" /> specifies an invalid value.-or-<paramref name="type" /> specifies an invalid value.</exception>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="eventRights" /> is zero.</exception>
/// <exception cref="T:System.ArgumentException">
/// <paramref name="identity" /> is null.-or-<paramref name="identity" /> is a zero-length string.-or-<paramref name="identity" /> is longer than 512 characters.</exception>
// Token: 0x06002D98 RID: 11672 RVA: 0x00093C78 File Offset: 0x00091E78
public MutexAccessRule(string identity, MutexRights eventRights, AccessControlType type)
: this(new SecurityIdentifier(identity), eventRights, type)
{
}
/// <summary>Gets the rights allowed or denied by the access rule.</summary>
/// <returns>A bitwise combination of <see cref="T:System.Security.AccessControl.MutexRights" /> values indicating the rights allowed or denied by the access rule.</returns>
// Token: 0x170008F8 RID: 2296
// (get) Token: 0x06002D99 RID: 11673 RVA: 0x00093C88 File Offset: 0x00091E88
public MutexRights MutexRights
{
get
{
return this.rights;
}
}
// Token: 0x04001205 RID: 4613
private MutexRights rights;
}
}
@@ -0,0 +1,42 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Represents a set of access rights to be audited for a user or group. This class cannot be inherited.</summary>
// Token: 0x020004CC RID: 1228
public sealed class MutexAuditRule : AuditRule
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.MutexAuditRule" /> class, specifying the user or group to audit, the rights to audit, and whether to audit success, failure, or both.</summary>
/// <param name="identity">The user or group the rule applies to. Must be of type <see cref="T:System.Security.Principal.SecurityIdentifier" /> or a type such as <see cref="T:System.Security.Principal.NTAccount" /> that can be converted to type <see cref="T:System.Security.Principal.SecurityIdentifier" />.</param>
/// <param name="eventRights">A bitwise combination of <see cref="T:System.Security.AccessControl.MutexRights" /> values specifying the kinds of access to audit.</param>
/// <param name="flags">A bitwise combination of <see cref="T:System.Security.AccessControl.AuditFlags" /> values specifying whether to audit success, failure, or both.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="eventRights" /> specifies an invalid value.-or-<paramref name="flags" /> specifies an invalid value.</exception>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="identity" /> is null. -or-<paramref name="eventRights" /> is zero.</exception>
/// <exception cref="T:System.ArgumentException">
/// <paramref name="identity" /> is neither of type <see cref="T:System.Security.Principal.SecurityIdentifier" /> nor of a type such as <see cref="T:System.Security.Principal.NTAccount" /> that can be translated to type <see cref="T:System.Security.Principal.SecurityIdentifier" />.</exception>
// Token: 0x06002D9A RID: 11674 RVA: 0x00093C90 File Offset: 0x00091E90
public MutexAuditRule(IdentityReference identity, MutexRights eventRights, AuditFlags flags)
: base(identity, 0, false, InheritanceFlags.None, PropagationFlags.None, flags)
{
this.rights = eventRights;
}
/// <summary>Gets the access rights affected by the audit rule.</summary>
/// <returns>A bitwise combination of <see cref="T:System.Security.AccessControl.MutexRights" /> values that indicates the rights affected by the audit rule.</returns>
// Token: 0x170008F9 RID: 2297
// (get) Token: 0x06002D9B RID: 11675 RVA: 0x00093CA8 File Offset: 0x00091EA8
public MutexRights MutexRights
{
get
{
return this.rights;
}
}
// Token: 0x04001206 RID: 4614
private MutexRights rights;
}
}
@@ -0,0 +1,32 @@
using System;
namespace System.Security.AccessControl
{
/// <summary>Specifies the access control rights that can be applied to named system mutex objects.</summary>
// Token: 0x020004CD RID: 1229
[Flags]
public enum MutexRights
{
/// <summary>The right to release a named mutex.</summary>
// Token: 0x04001208 RID: 4616
Modify = 1,
/// <summary>The right to delete a named mutex.</summary>
// Token: 0x04001209 RID: 4617
Delete = 65536,
/// <summary>The right to open and copy the access rules and audit rules for a named mutex.</summary>
// Token: 0x0400120A RID: 4618
ReadPermissions = 131072,
/// <summary>The right to change the security and audit rules associated with a named mutex.</summary>
// Token: 0x0400120B RID: 4619
ChangePermissions = 262144,
/// <summary>The right to change the owner of a named mutex.</summary>
// Token: 0x0400120C RID: 4620
TakeOwnership = 524288,
/// <summary>The right to wait on a named mutex.</summary>
// Token: 0x0400120D RID: 4621
Synchronize = 1048576,
/// <summary>The right to exert full control over a named mutex, and to modify its access rules and audit rules.</summary>
// Token: 0x0400120E RID: 4622
FullControl = 2031617
}
}
@@ -0,0 +1,226 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Represents the Windows access control security for a named mutex. This class cannot be inherited. </summary>
// Token: 0x020004CE RID: 1230
public sealed class MutexSecurity : NativeObjectSecurity
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.MutexSecurity" /> class with default values.</summary>
/// <exception cref="T:System.NotSupportedException">This class is not supported on Windows 98 or Windows Millennium Edition.</exception>
// Token: 0x06002D9C RID: 11676 RVA: 0x00093CB0 File Offset: 0x00091EB0
public MutexSecurity()
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.MutexSecurity" /> class with the specified sections of the access control security rules from the system mutex with the specified name.</summary>
/// <param name="name">The name of the system mutex whose access control security rules are to be retrieved.</param>
/// <param name="includeSections">A combination of <see cref="T:System.Security.AccessControl.AccessControlSections" /> flags specifying the sections to retrieve.</param>
/// <exception cref="T:System.IO.FileNotFoundException">There is no system object with the specified name.</exception>
/// <exception cref="T:System.NotSupportedException">This class is not supported on Windows 98 or Windows Millennium Edition.</exception>
// Token: 0x06002D9D RID: 11677 RVA: 0x00093CB8 File Offset: 0x00091EB8
public MutexSecurity(string name, AccessControlSections includeSections)
{
}
/// <summary>Gets the enumeration that the <see cref="T:System.Security.AccessControl.MutexSecurity" /> class uses to represent access rights.</summary>
/// <returns>A <see cref="T:System.Type" /> object representing the <see cref="T:System.Security.AccessControl.MutexRights" /> enumeration.</returns>
// Token: 0x170008FA RID: 2298
// (get) Token: 0x06002D9E RID: 11678 RVA: 0x00093CC0 File Offset: 0x00091EC0
public override Type AccessRightType
{
get
{
return typeof(MutexRights);
}
}
/// <summary>Gets the type that the <see cref="T:System.Security.AccessControl.MutexSecurity" /> class uses to represent access rules.</summary>
/// <returns>A <see cref="T:System.Type" /> object representing the <see cref="T:System.Security.AccessControl.MutexAccessRule" /> class.</returns>
// Token: 0x170008FB RID: 2299
// (get) Token: 0x06002D9F RID: 11679 RVA: 0x00093CCC File Offset: 0x00091ECC
public override Type AccessRuleType
{
get
{
return typeof(MutexAccessRule);
}
}
/// <summary>Gets the type that the <see cref="T:System.Security.AccessControl.MutexSecurity" /> class uses to represent audit rules.</summary>
/// <returns>A <see cref="T:System.Type" /> object representing the <see cref="T:System.Security.AccessControl.MutexAuditRule" /> class.</returns>
// Token: 0x170008FC RID: 2300
// (get) Token: 0x06002DA0 RID: 11680 RVA: 0x00093CD8 File Offset: 0x00091ED8
public override Type AuditRuleType
{
get
{
return typeof(MutexAuditRule);
}
}
/// <summary>Creates a new access control rule for the specified user, with the specified access rights, access control, and flags.</summary>
/// <returns>A <see cref="T:System.Security.AccessControl.MutexAccessRule" /> object representing the specified rights for the specified user.</returns>
/// <param name="identityReference">An <see cref="T:System.Security.Principal.IdentityReference" /> that identifies the user or group the rule applies to.</param>
/// <param name="accessMask">A bitwise combination of <see cref="T:System.Security.AccessControl.MutexRights" /> values specifying the access rights to allow or deny, cast to an integer.</param>
/// <param name="isInherited">Meaningless for named mutexes, because they have no hierarchy.</param>
/// <param name="inheritanceFlags">Meaningless for named mutexes, because they have no hierarchy.</param>
/// <param name="propagationFlags">Meaningless for named mutexes, because they have no hierarchy.</param>
/// <param name="type">One of the <see cref="T:System.Security.AccessControl.AccessControlType" /> values specifying whether the rights are allowed or denied.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="accessMask" />, <paramref name="inheritanceFlags" />, <paramref name="propagationFlags" />, or <paramref name="type" /> specifies an invalid value.</exception>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="identityReference" /> is null. -or-<paramref name="accessMask" /> is zero.</exception>
/// <exception cref="T:System.ArgumentException">
/// <paramref name="identityReference" /> is neither of type <see cref="T:System.Security.Principal.SecurityIdentifier" />, nor of a type such as <see cref="T:System.Security.Principal.NTAccount" /> that can be converted to type <see cref="T:System.Security.Principal.SecurityIdentifier" />.</exception>
// Token: 0x06002DA1 RID: 11681 RVA: 0x00093CE4 File Offset: 0x00091EE4
public override AccessRule AccessRuleFactory(IdentityReference identityReference, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType type)
{
return new MutexAccessRule(identityReference, (MutexRights)accessMask, type);
}
/// <summary>Searches for a matching access control rule with which the new rule can be merged. If none are found, adds the new rule.</summary>
/// <param name="rule">The access control rule to add.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
/// <exception cref="T:System.Security.Principal.IdentityNotMappedException">
/// <paramref name="rule " />cannot be mapped to a known identity.</exception>
// Token: 0x06002DA2 RID: 11682 RVA: 0x00093CF0 File Offset: 0x00091EF0
[MonoTODO]
public void AddAccessRule(MutexAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Searches for an access control rule with the same user and <see cref="T:System.Security.AccessControl.AccessControlType" /> (allow or deny) as the specified rule, and with compatible inheritance and propagation flags; if such a rule is found, the rights contained in the specified access rule are removed from it.</summary>
/// <returns>true if a compatible rule is found; otherwise false.</returns>
/// <param name="rule">A <see cref="T:System.Security.AccessControl.MutexAccessRule" /> that specifies the user and <see cref="T:System.Security.AccessControl.AccessControlType" /> to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Specifies the rights to remove from the compatible rule, if found.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002DA3 RID: 11683 RVA: 0x00093CF8 File Offset: 0x00091EF8
[MonoTODO]
public bool RemoveAccessRule(MutexAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Searches for all access control rules with the same user and <see cref="T:System.Security.AccessControl.AccessControlType" /> (allow or deny) as the specified rule and, if found, removes them.</summary>
/// <param name="rule">A <see cref="T:System.Security.AccessControl.MutexAccessRule" /> that specifies the user and <see cref="T:System.Security.AccessControl.AccessControlType" /> to search for. Any rights specified by this rule are ignored.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002DA4 RID: 11684 RVA: 0x00093D00 File Offset: 0x00091F00
[MonoTODO]
public void RemoveAccessRuleAll(MutexAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Searches for an access control rule that exactly matches the specified rule and, if found, removes it.</summary>
/// <param name="rule">The <see cref="T:System.Security.AccessControl.MutexAccessRule" /> to remove.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002DA5 RID: 11685 RVA: 0x00093D08 File Offset: 0x00091F08
[MonoTODO]
public void RemoveAccessRuleSpecific(MutexAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all access control rules with the same user as the specified rule, regardless of <see cref="T:System.Security.AccessControl.AccessControlType" />, and then adds the specified rule.</summary>
/// <param name="rule">The <see cref="T:System.Security.AccessControl.MutexAccessRule" /> to add. The user specified by this rule determines the rules to remove before this rule is added.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002DA6 RID: 11686 RVA: 0x00093D10 File Offset: 0x00091F10
[MonoTODO]
public void ResetAccessRule(MutexAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all access control rules with the same user and <see cref="T:System.Security.AccessControl.AccessControlType" /> (allow or deny) as the specified rule, and then adds the specified rule.</summary>
/// <param name="rule">The <see cref="T:System.Security.AccessControl.MutexAccessRule" /> to add. The user and <see cref="T:System.Security.AccessControl.AccessControlType" /> of this rule determine the rules to remove before this rule is added.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002DA7 RID: 11687 RVA: 0x00093D18 File Offset: 0x00091F18
[MonoTODO]
public void SetAccessRule(MutexAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Creates a new audit rule, specifying the user the rule applies to, the access rights to audit, and the outcome that triggers the audit rule.</summary>
/// <returns>A <see cref="T:System.Security.AccessControl.MutexAuditRule" /> object representing the specified audit rule for the specified user. The return type of the method is the base class, <see cref="T:System.Security.AccessControl.AuditRule" />, but the return value can be cast safely to the derived class.</returns>
/// <param name="identityReference">An <see cref="T:System.Security.Principal.IdentityReference" /> that identifies the user or group the rule applies to.</param>
/// <param name="accessMask">A bitwise combination of <see cref="T:System.Security.AccessControl.MutexRights" /> values specifying the access rights to audit, cast to an integer.</param>
/// <param name="isInherited">Meaningless for named wait handles, because they have no hierarchy.</param>
/// <param name="inheritanceFlags">Meaningless for named wait handles, because they have no hierarchy.</param>
/// <param name="propagationFlags">Meaningless for named wait handles, because they have no hierarchy.</param>
/// <param name="flags">A bitwise combination of <see cref="T:System.Security.AccessControl.AuditFlags" /> values that specify whether to audit successful access, failed access, or both.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="accessMask" />, <paramref name="inheritanceFlags" />, <paramref name="propagationFlags" />, or <paramref name="flags" /> specifies an invalid value.</exception>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="identityReference" /> is null. -or-<paramref name="accessMask" /> is zero.</exception>
/// <exception cref="T:System.ArgumentException">
/// <paramref name="identityReference" /> is neither of type <see cref="T:System.Security.Principal.SecurityIdentifier" />, nor of a type such as <see cref="T:System.Security.Principal.NTAccount" /> that can be converted to type <see cref="T:System.Security.Principal.SecurityIdentifier" />.</exception>
// Token: 0x06002DA8 RID: 11688 RVA: 0x00093D20 File Offset: 0x00091F20
public override AuditRule AuditRuleFactory(IdentityReference identityReference, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AuditFlags flags)
{
return new MutexAuditRule(identityReference, (MutexRights)accessMask, flags);
}
/// <summary>Searches for an audit rule with which the new rule can be merged. If none are found, adds the new rule.</summary>
/// <param name="rule">The audit rule to add. The user specified by this rule determines the search.</param>
// Token: 0x06002DA9 RID: 11689 RVA: 0x00093D2C File Offset: 0x00091F2C
[MonoTODO]
public void AddAuditRule(MutexAuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Searches for an audit control rule with the same user as the specified rule, and with compatible inheritance and propagation flags; if a compatible rule is found, the rights contained in the specified rule are removed from it.</summary>
/// <returns>true if a compatible rule is found; otherwise, false.</returns>
/// <param name="rule">A <see cref="T:System.Security.AccessControl.MutexAuditRule" /> that specifies the user to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Specifies the rights to remove from the compatible rule, if found.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002DAA RID: 11690 RVA: 0x00093D34 File Offset: 0x00091F34
[MonoTODO]
public bool RemoveAuditRule(MutexAuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Searches for all audit rules with the same user as the specified rule and, if found, removes them.</summary>
/// <param name="rule">A <see cref="T:System.Security.AccessControl.MutexAuditRule" /> that specifies the user to search for. Any rights specified by this rule are ignored.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002DAB RID: 11691 RVA: 0x00093D3C File Offset: 0x00091F3C
[MonoTODO]
public void RemoveAuditRuleAll(MutexAuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Searches for an audit rule that exactly matches the specified rule and, if found, removes it.</summary>
/// <param name="rule">The <see cref="T:System.Security.AccessControl.MutexAuditRule" /> to be removed.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002DAC RID: 11692 RVA: 0x00093D44 File Offset: 0x00091F44
[MonoTODO]
public void RemoveAuditRuleSpecific(MutexAuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all audit rules with the same user as the specified rule, regardless of the <see cref="T:System.Security.AccessControl.AuditFlags" /> value, and then adds the specified rule.</summary>
/// <param name="rule">The <see cref="T:System.Security.AccessControl.MutexAuditRule" /> to add. The user specified by this rule determines the rules to remove before this rule is added.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002DAD RID: 11693 RVA: 0x00093D4C File Offset: 0x00091F4C
[MonoTODO]
public void SetAuditRule(MutexAuditRule rule)
{
throw new NotImplementedException();
}
}
}
@@ -0,0 +1,136 @@
using System;
using System.Runtime.InteropServices;
namespace System.Security.AccessControl
{
/// <summary>Provides the ability to control access to native objects without direct manipulation of Access Control Lists (ACLs). Native object types are defined by the <see cref="T:System.Security.AccessControl.ResourceType" /> enumeration.</summary>
// Token: 0x020004CF RID: 1231
public abstract class NativeObjectSecurity : CommonObjectSecurity
{
// Token: 0x06002DAE RID: 11694 RVA: 0x00093D54 File Offset: 0x00091F54
internal NativeObjectSecurity()
: base(false)
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> class with the specified values.</summary>
/// <param name="isContainer">true if the new <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object is a container object.</param>
/// <param name="resourceType">The type of securable object with which the new <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object is associated.</param>
// Token: 0x06002DAF RID: 11695 RVA: 0x00093D60 File Offset: 0x00091F60
protected NativeObjectSecurity(bool isContainer, ResourceType resourceType)
: base(isContainer)
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> class by using the specified values.</summary>
/// <param name="isContainer">true if the new <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object is a container object.</param>
/// <param name="resourceType">The type of securable object with which the new <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object is associated.</param>
/// <param name="exceptionFromErrorCode">A delegate implemented by integrators that provides custom exceptions. </param>
/// <param name="exceptionContext">An object that contains contextual information about the source or destination of the exception.</param>
// Token: 0x06002DB0 RID: 11696 RVA: 0x00093D6C File Offset: 0x00091F6C
protected NativeObjectSecurity(bool isContainer, ResourceType resourceType, NativeObjectSecurity.ExceptionFromErrorCode exceptionFromErrorCode, object exceptionContext)
: this(isContainer, resourceType)
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> class with the specified values. We recommend that the values of the <paramref name="includeSections" /> parameters passed to the constructor and persist methods be identical. For more information, see Remarks.</summary>
/// <param name="isContainer">true if the new <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object is a container object.</param>
/// <param name="resourceType">The type of securable object with which the new <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object is associated.</param>
/// <param name="handle">The handle of the securable object with which the new <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object is associated.</param>
/// <param name="includeSections">One of the <see cref="T:System.Security.AccessControl.AccessControlSections" /> enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to include in this <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object.</param>
// Token: 0x06002DB1 RID: 11697 RVA: 0x00093D78 File Offset: 0x00091F78
protected NativeObjectSecurity(bool isContainer, ResourceType resourceType, SafeHandle handle, AccessControlSections includeSections)
: this(isContainer, resourceType)
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> class with the specified values. We recommend that the values of the <paramref name="includeSections" /> parameters passed to the constructor and persist methods be identical. For more information, see Remarks.</summary>
/// <param name="isContainer">true if the new <see cref="T:System.Security.AccessControl.NativObjectSecurity" /> object is a container object.</param>
/// <param name="resourceType">The type of securable object with which the new <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object is associated.</param>
/// <param name="name">The name of the securable object with which the new <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object is associated.</param>
/// <param name="includeSections">One of the <see cref="T:System.Security.AccessControl.AccessControlSections" /> enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to include in this <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object.</param>
// Token: 0x06002DB2 RID: 11698 RVA: 0x00093D84 File Offset: 0x00091F84
protected NativeObjectSecurity(bool isContainer, ResourceType resourceType, string name, AccessControlSections includeSections)
: this(isContainer, resourceType)
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> class with the specified values. We recommend that the values of the <paramref name="includeSections" /> parameters passed to the constructor and persist methods be identical. For more information, see Remarks.</summary>
/// <param name="isContainer">true if the new <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object is a container object.</param>
/// <param name="resourceType">The type of securable object with which the new <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object is associated.</param>
/// <param name="handle">The handle of the securable object with which the new <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object is associated.</param>
/// <param name="includeSections">One of the <see cref="T:System.Security.AccessControl.AccessControlSections" /> enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to include in this <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object.</param>
/// <param name="exceptionFromErrorCode">A delegate implemented by integrators that provides custom exceptions. </param>
/// <param name="exceptionContext">An object that contains contextual information about the source or destination of the exception.</param>
// Token: 0x06002DB3 RID: 11699 RVA: 0x00093D90 File Offset: 0x00091F90
protected NativeObjectSecurity(bool isContainer, ResourceType resourceType, SafeHandle handle, AccessControlSections includeSections, NativeObjectSecurity.ExceptionFromErrorCode exceptionFromErrorCode, object exceptionContext)
: this(isContainer, resourceType, handle, includeSections)
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> class with the specified values. We recommend that the values of the <paramref name="includeSections" /> parameters passed to the constructor and persist methods be identical. For more information, see Remarks.</summary>
/// <param name="isContainer">true if the new <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object is a container object.</param>
/// <param name="resourceType">The type of securable object with which the new <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object is associated.</param>
/// <param name="name">The name of the securable object with which the new <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object is associated.</param>
/// <param name="includeSections">One of the <see cref="T:System.Security.AccessControl.AccessControlSections" /> enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to include in this <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object.</param>
/// <param name="exceptionFromErrorCode">A delegate implemented by integrators that provides custom exceptions. </param>
/// <param name="exceptionContext">An object that contains contextual information about the source or destination of the exception.</param>
// Token: 0x06002DB4 RID: 11700 RVA: 0x00093DA0 File Offset: 0x00091FA0
protected NativeObjectSecurity(bool isContainer, ResourceType resourceType, string name, AccessControlSections includeSections, NativeObjectSecurity.ExceptionFromErrorCode exceptionFromErrorCode, object exceptionContext)
: this(isContainer, resourceType, name, includeSections)
{
}
/// <summary>Saves the specified sections of the security descriptor associated with this <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object to permanent storage. We recommend that the values of the <paramref name="includeSections" /> parameters passed to the constructor and persist methods be identical. For more information, see Remarks.</summary>
/// <param name="handle">The handle of the securable object with which this <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object is associated.</param>
/// <param name="includeSections">One of the <see cref="T:System.Security.AccessControl.AccessControlSections" /> enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save.</param>
/// <exception cref="T:System.IO.FileNotFoundException">The securable object with which this <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object is associated is either a directory or a file, and that directory or file could not be found.</exception>
// Token: 0x06002DB5 RID: 11701 RVA: 0x00093DB0 File Offset: 0x00091FB0
protected sealed override void Persist(SafeHandle handle, AccessControlSections includeSections)
{
throw new NotImplementedException();
}
/// <summary>Saves the specified sections of the security descriptor associated with this <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object to permanent storage. We recommend that the values of the <paramref name="includeSections" /> parameters passed to the constructor and persist methods be identical. For more information, see Remarks.</summary>
/// <param name="name">The name of the securable object with which this <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object is associated.</param>
/// <param name="includeSections">One of the <see cref="T:System.Security.AccessControl.AccessControlSections" /> enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save.</param>
/// <exception cref="T:System.IO.FileNotFoundException">The securable object with which this <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object is associated is either a directory or a file, and that directory or file could not be found.</exception>
// Token: 0x06002DB6 RID: 11702 RVA: 0x00093DB8 File Offset: 0x00091FB8
protected sealed override void Persist(string name, AccessControlSections includeSections)
{
throw new NotImplementedException();
}
/// <summary>Saves the specified sections of the security descriptor associated with this <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object to permanent storage. We recommend that the values of the <paramref name="includeSections" /> parameters passed to the constructor and persist methods be identical. For more information, see Remarks.</summary>
/// <param name="handle">The handle of the securable object with which this <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object is associated.</param>
/// <param name="includeSections">One of the <see cref="T:System.Security.AccessControl.AccessControlSections" /> enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save.</param>
/// <param name="exceptionContext">An object that contains contextual information about the source or destination of the exception.</param>
/// <exception cref="T:System.IO.FileNotFoundException">The securable object with which this <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object is associated is either a directory or a file, and that directory or file could not be found.</exception>
// Token: 0x06002DB7 RID: 11703 RVA: 0x00093DC0 File Offset: 0x00091FC0
protected void Persist(SafeHandle handle, AccessControlSections includeSections, object exceptionContext)
{
throw new NotImplementedException();
}
/// <summary>Saves the specified sections of the security descriptor associated with this <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object to permanent storage. We recommend that the values of the <paramref name="includeSections" /> parameters passed to the constructor and persist methods be identical. For more information, see Remarks.</summary>
/// <param name="name">The name of the securable object with which this <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object is associated.</param>
/// <param name="includeSections">One of the <see cref="T:System.Security.AccessControl.AccessControlSections" /> enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save.</param>
/// <param name="exceptionContext">An object that contains contextual information about the source or destination of the exception.</param>
/// <exception cref="T:System.IO.FileNotFoundException">The securable object with which this <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object is associated is either a directory or a file, and that directory or file could not be found.</exception>
// Token: 0x06002DB8 RID: 11704 RVA: 0x00093DC8 File Offset: 0x00091FC8
protected void Persist(string name, AccessControlSections includeSections, object exceptionContext)
{
throw new NotImplementedException();
}
/// <summary>Provides a way for integrators to map numeric error codes to specific exceptions that they create.</summary>
/// <returns>The <see cref="T:System.Exception" /> this delegate creates.</returns>
/// <param name="errorCode">The numeric error code.</param>
/// <param name="name">The name of the securable object with which the <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object is associated.</param>
/// <param name="handle">The handle of the securable object with which the <see cref="T:System.Security.AccessControl.NativeObjectSecurity" /> object is associated.</param>
/// <param name="context">An object that contains contextual information about the source or destination of the exception.</param>
// Token: 0x020006D1 RID: 1745
// (Invoke) Token: 0x060041CC RID: 16844
protected internal delegate Exception ExceptionFromErrorCode(int errorCode, string name, SafeHandle handle, object context);
}
}
@@ -0,0 +1,81 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Represents a combination of a user's identity, an access mask, and an access control type (allow or deny). An <see cref="T:System.Security.AccessControl.ObjectAccessRule" /> object also contains information about the type of object to which the rule applies, the type of child object that can inherit the rule, how the rule is inherited by child objects, and how that inheritance is propagated.</summary>
// Token: 0x020004D0 RID: 1232
public abstract class ObjectAccessRule : AccessRule
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.ObjectAccessRule" /> class with the specified values.</summary>
/// <param name="identity">The identity to which the access rule applies. It must be an object that can be cast as a <see cref="T:System.Security.Principal.SecurityIdentifier" />.</param>
/// <param name="accessMask">The access mask of this rule. The access mask is a 32-bit collection of anonymous bits, the meaning of which is defined by the individual integrators.</param>
/// <param name="isInherited">true if this rule is inherited from a parent container.</param>
/// <param name="inheritanceFlags">Specifies the inheritance properties of the access rule.</param>
/// <param name="propagationFlags">Specifies whether inherited access rules are automatically propagated. The propagation flags are ignored if <paramref name="inheritanceFlags" /> is set to <see cref="F:System.Security.AccessControl.InheritanceFlags.None" />.</param>
/// <param name="objectType">The type of object to which the rule applies.</param>
/// <param name="inheritedObjectType">The type of child object that can inherit the rule.</param>
/// <param name="type">Specifies whether this rule allows or denies access.</param>
/// <exception cref="T:System.ArgumentException">The value of the <paramref name="identity" /> parameter cannot be cast as a <see cref="T:System.Security.Principal.SecurityIdentifier" />, or the <paramref name="type" /> parameter contains an invalid value.</exception>
/// <exception cref="T:System.ArgumentOutOfRangeException">The value of the <paramref name="accessMask" /> parameter is 0, or the <paramref name="inheritanceFlags" /> or <paramref name="propagationFlags" /> parameters contain unrecognized flag values.</exception>
// Token: 0x06002DB9 RID: 11705 RVA: 0x00093DD0 File Offset: 0x00091FD0
protected ObjectAccessRule(IdentityReference identity, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, Guid objectType, Guid inheritedObjectType, AccessControlType type)
: base(identity, accessMask, isInherited, inheritanceFlags, propagationFlags, type)
{
this.object_type = objectType;
this.inherited_object_type = inheritedObjectType;
}
/// <summary>Gets the type of child object that can inherit the <see cref="System.Security.AccessControl.ObjectAccessRule" /> object.</summary>
/// <returns>The type of child object that can inherit the <see cref="System.Security.AccessControl.ObjectAccessRule" /> object.</returns>
// Token: 0x170008FD RID: 2301
// (get) Token: 0x06002DBA RID: 11706 RVA: 0x00093DF4 File Offset: 0x00091FF4
public Guid InheritedObjectType
{
get
{
return this.inherited_object_type;
}
}
/// <summary>Gets flags that specify if the <see cref="P:System.Security.AccessControl.ObjectAccessRule.ObjectType" /> and <see cref="P:System.Security.AccessControl.ObjectAccessRule.InheritedObjectType" /> properties of the <see cref="System.Security.AccessControl.ObjectAccessRule" /> object contain valid values.</summary>
/// <returns>
/// <see cref="F:System.Security.AccessControl.ObjectAceFlags.ObjectAceTypePresent" /> specifies that the <see cref="P:System.Security.AccessControl.ObjectAccessRule.ObjectType" /> property contains a valid value. <see cref="F:System.Security.AccessControl.ObjectAceFlags.InheritedObjectAceTypePresent" /> specifies that the <see cref="P:System.Security.AccessControl.ObjectAccessRule.InheritedObjectType" /> property contains a valid value. These values can be combined with a logical OR.</returns>
// Token: 0x170008FE RID: 2302
// (get) Token: 0x06002DBB RID: 11707 RVA: 0x00093DFC File Offset: 0x00091FFC
public ObjectAceFlags ObjectFlags
{
get
{
ObjectAceFlags objectAceFlags = ObjectAceFlags.None;
if (this.object_type != Guid.Empty)
{
objectAceFlags |= ObjectAceFlags.ObjectAceTypePresent;
}
if (this.inherited_object_type != Guid.Empty)
{
objectAceFlags |= ObjectAceFlags.InheritedObjectAceTypePresent;
}
return objectAceFlags;
}
}
/// <summary>Gets the type of object to which the <see cref="System.Security.AccessControl.ObjectAccessRule" /> applies.</summary>
/// <returns>The type of object to which the <see cref="System.Security.AccessControl.ObjectAccessRule" /> applies.</returns>
// Token: 0x170008FF RID: 2303
// (get) Token: 0x06002DBC RID: 11708 RVA: 0x00093E40 File Offset: 0x00092040
public Guid ObjectType
{
get
{
return this.object_type;
}
}
// Token: 0x0400120F RID: 4623
private Guid object_type;
// Token: 0x04001210 RID: 4624
private Guid inherited_object_type;
}
}
@@ -0,0 +1,127 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Controls access to Directory Services objects. This class represents an Access Control Entry (ACE) associated with a directory object.</summary>
// Token: 0x020004D1 RID: 1233
public sealed class ObjectAce : QualifiedAce
{
/// <summary>Initiates a new instance of the <see cref="T:System.Security.AccessControl.ObjectAce" /> class.</summary>
/// <param name="aceFlags">The inheritance, inheritance propagation, and auditing conditions for the new Access Control Entry (ACE).</param>
/// <param name="qualifier">The use of the new ACE.</param>
/// <param name="accessMask">The access mask for the ACE.</param>
/// <param name="sid">The <see cref="T:System.Security.Principal.SecurityIdentifier" /> associated with the new ACE.</param>
/// <param name="flags">Whether the <paramref name="type" /> and <paramref name="inheritedType" /> parameters contain valid object GUIDs.</param>
/// <param name="type">A GUID that identifies the object type to which the new ACE applies.</param>
/// <param name="inheritedType">A GUID that identifies the object type that can inherit the new ACE.</param>
/// <param name="isCallback">true if the new ACE is a callback type ACE.</param>
/// <param name="opaque">Opaque data associated with the new ACE. This is allowed only for callback ACE types. The length of this array must not be greater than the return value of the <see cref="M:System.Security.AccessControl.ObjectAceMaxOpaqueLength" /> method.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">The qualifier parameter contains an invalid value or the length of the value of the opaque parameter is greater than the return value of the <see cref="M:System.Security.AccessControl.ObjectAceMaxOpaqueLength" /> method.</exception>
// Token: 0x06002DBD RID: 11709 RVA: 0x00093E48 File Offset: 0x00092048
public ObjectAce(AceFlags aceFlags, AceQualifier qualifier, int accessMask, SecurityIdentifier sid, ObjectAceFlags flags, Guid type, Guid inheritedType, bool isCallback, byte[] opaque)
: base(InheritanceFlags.None, PropagationFlags.None, qualifier, isCallback, opaque)
{
base.AceFlags = aceFlags;
base.SecurityIdentifier = sid;
this.object_ace_flags = flags;
this.object_ace_type = type;
this.inherited_object_type = inheritedType;
}
/// <summary>Gets the length, in bytes, of the binary representation of the current <see cref="T:System.Security.AccessControl.ObjectAce" /> object. This length should be used before marshaling the ACL into a binary array with the <see cref="M:System.Security.AccessControl.ObjectAce.GetBinaryForm" /> method.</summary>
/// <returns>The length, in bytes, of the binary representation of the current <see cref="T:System.Security.AccessControl.ObjectAce" /> object.</returns>
// Token: 0x17000900 RID: 2304
// (get) Token: 0x06002DBE RID: 11710 RVA: 0x00093E8C File Offset: 0x0009208C
[MonoTODO]
public override int BinaryLength
{
get
{
throw new NotImplementedException();
}
}
/// <summary>Gets or sets the GUID of the object type that can inherit the Access Control Entry (ACE) that this <see cref="T:System.Security.AccessControl.ObjectAce" /> object represents.</summary>
/// <returns>The GUID of the object type that can inherit the Access Control Entry (ACE) that this <see cref="T:System.Security.AccessControl.ObjectAce" /> object represents.</returns>
// Token: 0x17000901 RID: 2305
// (get) Token: 0x06002DBF RID: 11711 RVA: 0x00093E94 File Offset: 0x00092094
// (set) Token: 0x06002DC0 RID: 11712 RVA: 0x00093E9C File Offset: 0x0009209C
public Guid InheritedObjectAceType
{
get
{
return this.inherited_object_type;
}
set
{
this.inherited_object_type = value;
}
}
/// <summary>Gets or sets flags that specify whether the <see cref="P:System.Security.AccessControl.ObjectAce.ObjectAceType" /> and <see cref="P:System.Security.AccessControl.ObjectAce.InheritedObjectAceType" /> properties contain values that identify valid object types.</summary>
/// <returns>On or more members of the <see cref="T:System.Security.AccessControl.ObjectAceFlags" /> enumeration combined with a logical OR operation.</returns>
// Token: 0x17000902 RID: 2306
// (get) Token: 0x06002DC1 RID: 11713 RVA: 0x00093EA8 File Offset: 0x000920A8
// (set) Token: 0x06002DC2 RID: 11714 RVA: 0x00093EB0 File Offset: 0x000920B0
public ObjectAceFlags ObjectAceFlags
{
get
{
return this.object_ace_flags;
}
set
{
this.object_ace_flags = value;
}
}
/// <summary>Gets or sets the GUID of the object type associated with this <see cref="T:System.Security.AccessControl.ObjectAce" /> object.</summary>
/// <returns>The GUID of the object type associated with this <see cref="T:System.Security.AccessControl.ObjectAce" /> object.</returns>
// Token: 0x17000903 RID: 2307
// (get) Token: 0x06002DC3 RID: 11715 RVA: 0x00093EBC File Offset: 0x000920BC
// (set) Token: 0x06002DC4 RID: 11716 RVA: 0x00093EC4 File Offset: 0x000920C4
public Guid ObjectAceType
{
get
{
return this.object_ace_type;
}
set
{
this.object_ace_type = value;
}
}
/// <summary>Marshals the contents of the <see cref="T:System.Security.AccessControl.ObjectAce" /> object into the specified byte array beginning at the specified offset.</summary>
/// <param name="binaryForm">The byte array into which the contents of the <see cref="T:System.Security.AccessControl. ObjectAce" /> is marshaled.</param>
/// <param name="offset">The offset at which to start marshaling.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="offset" /> is negative or too high to allow the entire <see cref="T:System.Security.AccessControl.ObjectAce" /> to be copied into <paramref name="array" />.</exception>
// Token: 0x06002DC5 RID: 11717 RVA: 0x00093ED0 File Offset: 0x000920D0
[MonoTODO]
public override void GetBinaryForm(byte[] binaryForm, int offset)
{
throw new NotImplementedException();
}
/// <summary>Returns the maximum allowed length, in bytes, of an opaque data BLOB for callback Access Control Entries (ACEs).</summary>
/// <returns>The maximum allowed length, in bytes, of an opaque data BLOB for callback Access Control Entries (ACEs).</returns>
/// <param name="isCallback">True if the <see cref="T:System.Security.AccessControl.ObjectAce" /> is a callback ACE type.</param>
// Token: 0x06002DC6 RID: 11718 RVA: 0x00093ED8 File Offset: 0x000920D8
[MonoTODO]
public static int MaxOpaqueLength(bool isCallback)
{
throw new NotImplementedException();
}
// Token: 0x04001211 RID: 4625
private Guid object_ace_type;
// Token: 0x04001212 RID: 4626
private Guid inherited_object_type;
// Token: 0x04001213 RID: 4627
private ObjectAceFlags object_ace_flags;
}
}
@@ -0,0 +1,20 @@
using System;
namespace System.Security.AccessControl
{
/// <summary>Specifies the presence of object types for Access Control Entries (ACEs).</summary>
// Token: 0x020004D2 RID: 1234
[Flags]
public enum ObjectAceFlags
{
/// <summary>No object types are present.</summary>
// Token: 0x04001215 RID: 4629
None = 0,
/// <summary>The type of object that is associated with the ACE is present.</summary>
// Token: 0x04001216 RID: 4630
ObjectAceTypePresent = 1,
/// <summary>The type of object that can inherit the ACE.</summary>
// Token: 0x04001217 RID: 4631
InheritedObjectAceTypePresent = 2
}
}
@@ -0,0 +1,82 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Represents a combination of a user's identity, an access mask, and audit conditions. An <see cref="T:System.Security.AccessControl.ObjectAuditRule" /> object also contains information about the type of object to which the rule applies, the type of child object that can inherit the rule, how the rule is inherited by child objects, and how that inheritance is propagated.</summary>
// Token: 0x020004D3 RID: 1235
public abstract class ObjectAuditRule : AuditRule
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.ObjectAuditRule" /> class.</summary>
/// <param name="identity">The identity to which the access rule applies. It must be an object that can be cast as a <see cref="T:System.Security.Principal.SecurityIdentifier" />.</param>
/// <param name="accessMask">The access mask of this rule. The access mask is a 32-bit collection of anonymous bits, the meaning of which is defined by the individual integrators.</param>
/// <param name="isInherited">true if this rule is inherited from a parent container.</param>
/// <param name="inheritanceFlags">Specifies the inheritance properties of the access rule.</param>
/// <param name="propagationFlags">Whether inherited access rules are automatically propagated. The propagation flags are ignored if <paramref name="inheritanceFlags" /> is set to <see cref="F:System.Security.AccessControl.InheritanceFlags.None" />.</param>
/// <param name="objectType">The type of object to which the rule applies.</param>
/// <param name="inheritedObjectType">The type of child object that can inherit the rule.</param>
/// <param name="auditFlags">The audit conditions.</param>
/// <exception cref="T:System.ArgumentException">The value of the <paramref name="identity" /> parameter cannot be cast as a <see cref="T:System.Security.Principal.SecurityIdentifier" />, or the <paramref name="type" /> parameter contains an invalid value.</exception>
/// <exception cref="T:System.ArgumentOutOfRangeException">The value of the <paramref name="accessMask" /> parameter is 0, or the <paramref name="inheritanceFlags" /> or <paramref name="propagationFlags" /> parameters contain unrecognized flag values.</exception>
// Token: 0x06002DC7 RID: 11719 RVA: 0x00093EE0 File Offset: 0x000920E0
protected ObjectAuditRule(IdentityReference identity, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, Guid objectType, Guid inheritedObjectType, AuditFlags auditFlags)
: base(identity, accessMask, isInherited, inheritanceFlags, propagationFlags, auditFlags)
{
this.object_type = objectType;
this.inherited_object_type = inheritedObjectType;
}
/// <summary>Gets the type of child object that can inherit the <see cref="System.Security.AccessControl.ObjectAuditRule" /> object.</summary>
/// <returns>The type of child object that can inherit the <see cref="System.Security.AccessControl.ObjectAuditRule" /> object.</returns>
// Token: 0x17000904 RID: 2308
// (get) Token: 0x06002DC8 RID: 11720 RVA: 0x00093F04 File Offset: 0x00092104
public Guid InheritedObjectType
{
get
{
return this.inherited_object_type;
}
}
/// <summary>
/// <see cref="P:System.Security.AccessControl.ObjectAuditRule.ObjectType" /> and <see cref="P:System.Security.AccessControl.ObjectAuditRule.InheritedObjectType" /> properties of the <see cref="System.Security.AccessControl.ObjectAuditRule" /> object contain valid values.</summary>
/// <returns>
/// <see cref="F:System.Security.AccessControl.ObjectAceFlags.ObjectAceTypePresent" /> specifies that the <see cref="P:System.Security.AccessControl.ObjectAuditRule.ObjectType" /> property contains a valid value. <see cref="F:System.Security.AccessControl.ObjectAceFlags.InheritedObjectAceTypePresent" /> specifies that the <see cref="P:System.Security.AccessControl.ObjectAuditRule.InheritedObjectType" /> property contains a valid value. These values can be combined with a logical OR.</returns>
// Token: 0x17000905 RID: 2309
// (get) Token: 0x06002DC9 RID: 11721 RVA: 0x00093F0C File Offset: 0x0009210C
public ObjectAceFlags ObjectFlags
{
get
{
ObjectAceFlags objectAceFlags = ObjectAceFlags.None;
if (this.object_type != Guid.Empty)
{
objectAceFlags |= ObjectAceFlags.ObjectAceTypePresent;
}
if (this.inherited_object_type != Guid.Empty)
{
objectAceFlags |= ObjectAceFlags.InheritedObjectAceTypePresent;
}
return objectAceFlags;
}
}
/// <summary>Gets the type of object to which the <see cref="System.Security.AccessControl.ObjectAuditRule" /> applies.</summary>
/// <returns>The type of object to which the <see cref="System.Security.AccessControl.ObjectAuditRule" /> applies.</returns>
// Token: 0x17000906 RID: 2310
// (get) Token: 0x06002DCA RID: 11722 RVA: 0x00093F50 File Offset: 0x00092150
public Guid ObjectType
{
get
{
return this.object_type;
}
}
// Token: 0x04001218 RID: 4632
private Guid inherited_object_type;
// Token: 0x04001219 RID: 4633
private Guid object_type;
}
}
@@ -0,0 +1,483 @@
using System;
using System.Runtime.InteropServices;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Provides the ability to control access to objects without direct manipulation of Access Control Lists (ACLs). This class is the abstract base class for the <see cref="T:System.Security.AccessControl.CommonObjectSecurity" /> and <see cref="T:System.Security.AccessControl.DirectoryObjectSecurity" /> classes.</summary>
// Token: 0x020004D4 RID: 1236
public abstract class ObjectSecurity
{
// Token: 0x06002DCB RID: 11723 RVA: 0x00093F58 File Offset: 0x00092158
internal ObjectSecurity()
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.ObjectSecurity" /> class.</summary>
/// <param name="isContainer">true if the new <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object is a container object.</param>
/// <param name="isDS">True if the new <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object is a directory object.</param>
// Token: 0x06002DCC RID: 11724 RVA: 0x00093F60 File Offset: 0x00092160
protected ObjectSecurity(bool isContainer, bool isDS)
{
this.is_container = isContainer;
this.is_ds = isDS;
}
/// <summary>Gets the <see cref="T:System.Type" /> of the securable object associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object.</summary>
/// <returns>The type of the securable object associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object.</returns>
// Token: 0x17000907 RID: 2311
// (get) Token: 0x06002DCD RID: 11725
public abstract Type AccessRightType { get; }
/// <summary>Gets the <see cref="T:System.Type" /> of the object associated with the access rules of this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object. The <see cref="T:System.Type" /> object must be an object that can be cast as a <see cref="T:System.Security.Principal.SecurityIdentifier" /> object.</summary>
/// <returns>The type of the object associated with the access rules of this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object.</returns>
// Token: 0x17000908 RID: 2312
// (get) Token: 0x06002DCE RID: 11726
public abstract Type AccessRuleType { get; }
/// <summary>Gets the <see cref="T:System.Type" /> object associated with the audit rules of this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object. The <see cref="T:System.Type" /> object must be an object that can be cast as a <see cref="T:System.Security.Principal.SecurityIdentifier" /> object.</summary>
/// <returns>The type of the object associated with the audit rules of this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object.</returns>
// Token: 0x17000909 RID: 2313
// (get) Token: 0x06002DCF RID: 11727
public abstract Type AuditRuleType { get; }
/// <summary>Gets a Boolean value that specifies whether the access rules associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object are in canonical order.</summary>
/// <returns>true if the access rules are in canonical order; otherwise, false.</returns>
// Token: 0x1700090A RID: 2314
// (get) Token: 0x06002DD0 RID: 11728 RVA: 0x00093F78 File Offset: 0x00092178
[MonoTODO]
public bool AreAccessRulesCanonical
{
get
{
throw new NotImplementedException();
}
}
/// <summary>Gets a Boolean value that specifies whether the Discretionary Access Control List (DACL) associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object is protected.</summary>
/// <returns>true if the DACL is protected; otherwise, false.</returns>
// Token: 0x1700090B RID: 2315
// (get) Token: 0x06002DD1 RID: 11729 RVA: 0x00093F80 File Offset: 0x00092180
[MonoTODO]
public bool AreAccessRulesProtected
{
get
{
throw new NotImplementedException();
}
}
/// <summary>Gets a Boolean value that specifies whether the audit rules associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object are in canonical order.</summary>
/// <returns>true if the audit rules are in canonical order; otherwise, false.</returns>
// Token: 0x1700090C RID: 2316
// (get) Token: 0x06002DD2 RID: 11730 RVA: 0x00093F88 File Offset: 0x00092188
[MonoTODO]
public bool AreAuditRulesCanonical
{
get
{
throw new NotImplementedException();
}
}
/// <summary>Gets a Boolean value that specifies whether the System Access Control List (SACL) associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object is protected.</summary>
/// <returns>true if the SACL is protected; otherwise, false.</returns>
// Token: 0x1700090D RID: 2317
// (get) Token: 0x06002DD3 RID: 11731 RVA: 0x00093F90 File Offset: 0x00092190
[MonoTODO]
public bool AreAuditRulesProtected
{
get
{
throw new NotImplementedException();
}
}
/// <summary>Gets or sets a Boolean value that specifies whether the access rules associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object have been modified.</summary>
/// <returns>true if the access rules associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object have been modified; otherwise, false.</returns>
// Token: 0x1700090E RID: 2318
// (get) Token: 0x06002DD4 RID: 11732 RVA: 0x00093F98 File Offset: 0x00092198
// (set) Token: 0x06002DD5 RID: 11733 RVA: 0x00093FA0 File Offset: 0x000921A0
protected bool AccessRulesModified
{
get
{
return this.access_rules_modified;
}
set
{
this.access_rules_modified = value;
}
}
/// <summary>Gets or sets a Boolean value that specifies whether the audit rules associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object have been modified.</summary>
/// <returns>true if the audit rules associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object have been modified; otherwise, false.</returns>
// Token: 0x1700090F RID: 2319
// (get) Token: 0x06002DD6 RID: 11734 RVA: 0x00093FAC File Offset: 0x000921AC
// (set) Token: 0x06002DD7 RID: 11735 RVA: 0x00093FB4 File Offset: 0x000921B4
protected bool AuditRulesModified
{
get
{
return this.audit_rules_modified;
}
set
{
this.audit_rules_modified = value;
}
}
/// <summary>Gets or sets a Boolean value that specifies whether the group associated with the securable object has been modified. </summary>
/// <returns>true if the group associated with the securable object has been modified; otherwise, false.</returns>
// Token: 0x17000910 RID: 2320
// (get) Token: 0x06002DD8 RID: 11736 RVA: 0x00093FC0 File Offset: 0x000921C0
// (set) Token: 0x06002DD9 RID: 11737 RVA: 0x00093FC8 File Offset: 0x000921C8
protected bool GroupModified
{
get
{
return this.group_modified;
}
set
{
this.group_modified = value;
}
}
/// <summary>Gets a Boolean value that specifies whether this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object is a container object.</summary>
/// <returns>true if the <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object is a container object; otherwise, false.</returns>
// Token: 0x17000911 RID: 2321
// (get) Token: 0x06002DDA RID: 11738 RVA: 0x00093FD4 File Offset: 0x000921D4
protected bool IsContainer
{
get
{
return this.is_container;
}
}
/// <summary>Gets a Boolean value that specifies whether this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object is a directory object.</summary>
/// <returns>true if the <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object is a directory object; otherwise, false.</returns>
// Token: 0x17000912 RID: 2322
// (get) Token: 0x06002DDB RID: 11739 RVA: 0x00093FDC File Offset: 0x000921DC
protected bool IsDS
{
get
{
return this.is_ds;
}
}
/// <summary>Gets or sets a Boolean value that specifies whether the owner of the securable object has been modified.</summary>
/// <returns>true if the owner of the securable object has been modified; otherwise, false.</returns>
// Token: 0x17000913 RID: 2323
// (get) Token: 0x06002DDC RID: 11740 RVA: 0x00093FE4 File Offset: 0x000921E4
// (set) Token: 0x06002DDD RID: 11741 RVA: 0x00093FEC File Offset: 0x000921EC
protected bool OwnerModified
{
get
{
return this.owner_modified;
}
set
{
this.owner_modified = value;
}
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.AccessRule" /> class with the specified values.</summary>
/// <returns>The <see cref="T:System.Security.AccessControl.AccessRule" /> object that this method creates.</returns>
/// <param name="identityReference">The identity to which the access rule applies. It must be an object that can be cast as a <see cref="T:System.Security.Principal.SecurityIdentifier" />.</param>
/// <param name="accessMask">The access mask of this rule. The access mask is a 32-bit collection of anonymous bits, the meaning of which is defined by the individual integrators.</param>
/// <param name="isInherited">true if this rule is inherited from a parent container.</param>
/// <param name="inheritanceFlags">Specifies the inheritance properties of the access rule.</param>
/// <param name="propagationFlags">Specifies whether inherited access rules are automatically propagated. The propagation flags are ignored if <paramref name="inheritanceFlags" /> is set to <see cref="F:System.Security.AccessControl.InheritanceFlags.None" />.</param>
/// <param name="type">Specifies the valid access control type.</param>
// Token: 0x06002DDE RID: 11742
public abstract AccessRule AccessRuleFactory(IdentityReference identityReference, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType type);
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.AuditRule" /> class with the specified values.</summary>
/// <returns>The <see cref="T:System.Security.AccessControl.AuditRule" /> object that this method creates.</returns>
/// <param name="identityReference">The identity to which the audit rule applies. It must be an object that can be cast as a <see cref="T:System.Security.Principal.SecurityIdentifier" />.</param>
/// <param name="accessMask">The access mask of this rule. The access mask is a 32-bit collection of anonymous bits, the meaning of which is defined by the individual integrators.</param>
/// <param name="isInherited">true if this rule is inherited from a parent container.</param>
/// <param name="inheritanceFlags">Specifies the inheritance properties of the audit rule.</param>
/// <param name="propagationFlags">Specifies whether inherited audit rules are automatically propagated. The propagation flags are ignored if <paramref name="inheritanceFlags" /> is set to <see cref="F:System.Security.AccessControl.InheritanceFlags.None" />.</param>
/// <param name="flags">Specifies the conditions for which the rule is audited.</param>
// Token: 0x06002DDF RID: 11743
public abstract AuditRule AuditRuleFactory(IdentityReference identityReference, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AuditFlags flags);
/// <summary>Gets the primary group associated with the specified owner.</summary>
/// <returns>The primary group associated with the specified owner.</returns>
/// <param name="targetType">The owner for which to get the primary group. </param>
/// <PermissionSet>
/// <IPermission class="System.Security.Permissions.ReflectionPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="MemberAccess" />
/// </PermissionSet>
// Token: 0x06002DE0 RID: 11744 RVA: 0x00093FF8 File Offset: 0x000921F8
[MonoTODO]
public IdentityReference GetGroup(Type targetType)
{
throw new NotImplementedException();
}
/// <summary>Gets the owner associated with the specified primary group.</summary>
/// <returns>The owner associated with the specified group.</returns>
/// <param name="targetType">The primary group for which to get the owner.</param>
/// <PermissionSet>
/// <IPermission class="System.Security.Permissions.ReflectionPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="MemberAccess" />
/// </PermissionSet>
// Token: 0x06002DE1 RID: 11745 RVA: 0x00094000 File Offset: 0x00092200
[MonoTODO]
public IdentityReference GetOwner(Type targetType)
{
throw new NotImplementedException();
}
/// <summary>Returns an array of byte values that represents the security descriptor information for this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object.</summary>
/// <returns>An array of byte values that represents the security descriptor for this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object. This method returns null if there is no security information in this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object.</returns>
// Token: 0x06002DE2 RID: 11746 RVA: 0x00094008 File Offset: 0x00092208
[MonoTODO]
public byte[] GetSecurityDescriptorBinaryForm()
{
throw new NotImplementedException();
}
/// <summary>Returns the Security Descriptor Definition Language (SDDL) representation of the specified sections of the security descriptor associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object.</summary>
/// <returns>The SDDL representation of the specified sections of the security descriptor associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object.</returns>
/// <param name="includeSections">Specifies which sections (access rules, audit rules, primary group, owner) of the security descriptor to get.</param>
// Token: 0x06002DE3 RID: 11747 RVA: 0x00094010 File Offset: 0x00092210
[MonoTODO]
public string GetSecurityDescriptorSddlForm(AccessControlSections includeSections)
{
throw new NotImplementedException();
}
/// <summary>Returns a Boolean value that specifies whether the security descriptor associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object can be converted to the Security Descriptor Definition Language (SDDL) format.</summary>
/// <returns>true if the security descriptor associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object can be converted to the Security Descriptor Definition Language (SDDL) format; otherwise, false.</returns>
// Token: 0x06002DE4 RID: 11748 RVA: 0x00094018 File Offset: 0x00092218
[MonoTODO]
public static bool IsSddlConversionSupported()
{
throw new NotImplementedException();
}
/// <summary>Applies the specified modification to the Discretionary Access Control List (DACL) associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object.</summary>
/// <returns>true if the DACL is successfully modified; otherwise, false.</returns>
/// <param name="modification">The modification to apply to the DACL.</param>
/// <param name="rule">The access rule to modify.</param>
/// <param name="modified">true if the DACL is successfully modified; otherwise, false.</param>
// Token: 0x06002DE5 RID: 11749 RVA: 0x00094020 File Offset: 0x00092220
[MonoTODO]
public virtual bool ModifyAccessRule(AccessControlModification modification, AccessRule rule, out bool modified)
{
throw new NotImplementedException();
}
/// <summary>Applies the specified modification to the System Access Control List (SACL) associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object.</summary>
/// <returns>true if the SACL is successfully modified; otherwise, false.</returns>
/// <param name="modification">The modification to apply to the SACL.</param>
/// <param name="rule">The audit rule to modify.</param>
/// <param name="modified">true if the SACL is successfully modified; otherwise, false.</param>
// Token: 0x06002DE6 RID: 11750 RVA: 0x00094028 File Offset: 0x00092228
[MonoTODO]
public virtual bool ModifyAuditRule(AccessControlModification modification, AuditRule rule, out bool modified)
{
throw new NotImplementedException();
}
/// <summary>Removes all access rules associated with the specified <see cref="T:System.Security.Principal.IdentityReference" />.</summary>
/// <param name="identity">The <see cref="T:System.Security.Principal.IdentityReference" /> for which to remove all access rules.</param>
/// <exception cref="T:System.InvalidOperationException">All access rules are not in canonical order.</exception>
// Token: 0x06002DE7 RID: 11751 RVA: 0x00094030 File Offset: 0x00092230
[MonoTODO]
public virtual void PurgeAccessRules(IdentityReference identity)
{
throw new NotImplementedException();
}
/// <summary>Removes all audit rules associated with the specified <see cref="T:System.Security.Principal.IdentityReference" />.</summary>
/// <param name="identity">The <see cref="T:System.Security.Principal.IdentityReference" /> for which to remove all audit rules.</param>
/// <exception cref="T:System.InvalidOperationException">All audit rules are not in canonical order.</exception>
// Token: 0x06002DE8 RID: 11752 RVA: 0x00094038 File Offset: 0x00092238
[MonoTODO]
public virtual void PurgeAuditRules(IdentityReference identity)
{
throw new NotImplementedException();
}
/// <summary>Sets or removes protection of the access rules associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object. Protected access rules cannot be modified by parent objects through inheritance.</summary>
/// <param name="isProtected">true to protect the access rules associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object from inheritance; false to allow inheritance.</param>
/// <param name="preserveInheritance">true to preserve inherited access rules; false to remove inherited access rules. This parameter is ignored if <paramref name="isProtected" /> is false.</param>
/// <exception cref="T:System.InvalidOperationException">This method attempts to remove inherited rules from a non-canonical Discretionary Access Control List (DACL).</exception>
// Token: 0x06002DE9 RID: 11753 RVA: 0x00094040 File Offset: 0x00092240
[MonoTODO]
public void SetAccessRuleProtection(bool isProtected, bool preserveInheritance)
{
throw new NotImplementedException();
}
/// <summary>Sets or removes protection of the audit rules associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object. Protected audit rules cannot be modified by parent objects through inheritance.</summary>
/// <param name="isProtected">true to protect the audit rules associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object from inheritance; false to allow inheritance.</param>
/// <param name="preserveInheritance">true to preserve inherited audit rules; false to remove inherited audit rules. This parameter is ignored if <paramref name="isProtected" /> is false.</param>
/// <exception cref="T:System.InvalidOperationException">This method attempts to remove inherited rules from a non-canonical System Access Control List (SACL).</exception>
// Token: 0x06002DEA RID: 11754 RVA: 0x00094048 File Offset: 0x00092248
[MonoTODO]
public void SetAuditRuleProtection(bool isProtected, bool preserveInheritance)
{
throw new NotImplementedException();
}
/// <summary>Sets the primary group for the security descriptor associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object.</summary>
/// <param name="identity">The primary group to set.</param>
// Token: 0x06002DEB RID: 11755 RVA: 0x00094050 File Offset: 0x00092250
[MonoTODO]
public void SetGroup(IdentityReference identity)
{
throw new NotImplementedException();
}
/// <summary>Sets the owner for the security descriptor associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object.</summary>
/// <param name="identity">The owner to set.</param>
// Token: 0x06002DEC RID: 11756 RVA: 0x00094058 File Offset: 0x00092258
[MonoTODO]
public void SetOwner(IdentityReference identity)
{
throw new NotImplementedException();
}
/// <summary>Sets the security descriptor for this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object from the specified array of byte values.</summary>
/// <param name="binaryForm">The array of bytes from which to set the security descriptor.</param>
// Token: 0x06002DED RID: 11757 RVA: 0x00094060 File Offset: 0x00092260
[MonoTODO]
public void SetSecurityDescriptorBinaryForm(byte[] binaryForm)
{
throw new NotImplementedException();
}
/// <summary>Sets the specified sections of the security descriptor for this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object from the specified array of byte values.</summary>
/// <param name="binaryForm">The array of bytes from which to set the security descriptor.</param>
/// <param name="includeSections">The sections (access rules, audit rules, owner, primary group) of the security descriptor to set.</param>
// Token: 0x06002DEE RID: 11758 RVA: 0x00094068 File Offset: 0x00092268
[MonoTODO]
public void SetSecurityDescriptorBinaryForm(byte[] binaryForm, AccessControlSections includeSections)
{
throw new NotImplementedException();
}
/// <summary>Sets the security descriptor for this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object from the specified Security Descriptor Definition Language (SDDL) string.</summary>
/// <param name="sddlForm">The SDDL string from which to set the security descriptor.</param>
// Token: 0x06002DEF RID: 11759 RVA: 0x00094070 File Offset: 0x00092270
[MonoTODO]
public void SetSecurityDescriptorSddlForm(string sddlForm)
{
throw new NotImplementedException();
}
/// <summary>Sets the specified sections of the security descriptor for this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object from the specified Security Descriptor Definition Language (SDDL) string.</summary>
/// <param name="sddlForm">The SDDL string from which to set the security descriptor.</param>
/// <param name="includeSections">The sections (access rules, audit rules, owner, primary group) of the security descriptor to set.</param>
// Token: 0x06002DF0 RID: 11760 RVA: 0x00094078 File Offset: 0x00092278
[MonoTODO]
public void SetSecurityDescriptorSddlForm(string sddlForm, AccessControlSections includeSections)
{
throw new NotImplementedException();
}
/// <summary>Applies the specified modification to the Discretionary Access Control List (DACL) associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object.</summary>
/// <returns>true if the DACL is successfully modified; otherwise, false.</returns>
/// <param name="modification">The modification to apply to the DACL.</param>
/// <param name="rule">The access rule to modify.</param>
/// <param name="modified">true if the DACL is successfully modified; otherwise, false.</param>
// Token: 0x06002DF1 RID: 11761
protected abstract bool ModifyAccess(AccessControlModification modification, AccessRule rule, out bool modified);
/// <summary>Applies the specified modification to the System Access Control List (SACL) associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object.</summary>
/// <returns>true if the SACL is successfully modified; otherwise, false.</returns>
/// <param name="modification">The modification to apply to the SACL.</param>
/// <param name="rule">The audit rule to modify.</param>
/// <param name="modified">true if the SACL is successfully modified; otherwise, false.</param>
// Token: 0x06002DF2 RID: 11762
protected abstract bool ModifyAudit(AccessControlModification modification, AuditRule rule, out bool modified);
/// <summary>Saves the specified sections of the security descriptor associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object to permanent storage. We recommend that the values of the <paramref name="includeSections" /> parameters passed to the constructor and persist methods be identical. For more information, see Remarks.</summary>
/// <param name="handle">The handle used to retrieve the persisted information.</param>
/// <param name="includeSections">One of the <see cref="T:System.Security.AccessControl.AccessControlSections" /> enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save.</param>
// Token: 0x06002DF3 RID: 11763 RVA: 0x00094080 File Offset: 0x00092280
[MonoTODO]
protected virtual void Persist(SafeHandle handle, AccessControlSections includeSections)
{
throw new NotImplementedException();
}
/// <summary>Saves the specified sections of the security descriptor associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object to permanent storage. We recommend that the values of the <paramref name="includeSections" /> parameters passed to the constructor and persist methods be identical. For more information, see Remarks.</summary>
/// <param name="name">The name used to retrieve the persisted information.</param>
/// <param name="includeSections">One of the <see cref="T:System.Security.AccessControl.AccessControlSections" /> enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save.</param>
// Token: 0x06002DF4 RID: 11764 RVA: 0x00094088 File Offset: 0x00092288
[MonoTODO]
protected virtual void Persist(string name, AccessControlSections includeSections)
{
throw new NotImplementedException();
}
/// <summary>Saves the specified sections of the security descriptor associated with this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object to permanent storage. We recommend that the values of the <paramref name="includeSections" /> parameters passed to the constructor and persist methods be identical. For more information, see Remarks.</summary>
/// <param name="enableOwnershipPrivilege">true to enable the privilege that allows the caller to take ownership of the object.</param>
/// <param name="name">The name used to retrieve the persisted information.</param>
/// <param name="includeSections">One of the <see cref="T:System.Security.AccessControl.AccessControlSections" /> enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save.</param>
// Token: 0x06002DF5 RID: 11765 RVA: 0x00094090 File Offset: 0x00092290
[MonoTODO]
protected virtual void Persist(bool enableOwnershipPrivilege, string name, AccessControlSections includeSections)
{
throw new NotImplementedException();
}
/// <summary>Locks this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object for read access.</summary>
// Token: 0x06002DF6 RID: 11766 RVA: 0x00094098 File Offset: 0x00092298
[MonoTODO]
protected void ReadLock()
{
throw new NotImplementedException();
}
/// <summary>Unlocks this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object for read access.</summary>
// Token: 0x06002DF7 RID: 11767 RVA: 0x000940A0 File Offset: 0x000922A0
[MonoTODO]
protected void ReadUnlock()
{
throw new NotImplementedException();
}
/// <summary>Locks this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object for write access.</summary>
// Token: 0x06002DF8 RID: 11768 RVA: 0x000940A8 File Offset: 0x000922A8
[MonoTODO]
protected void WriteLock()
{
throw new NotImplementedException();
}
/// <summary>Unlocks this <see cref="T:System.Security.AccessControl.ObjectSecurity" /> object for write access.</summary>
// Token: 0x06002DF9 RID: 11769 RVA: 0x000940B0 File Offset: 0x000922B0
[MonoTODO]
protected void WriteUnlock()
{
throw new NotImplementedException();
}
// Token: 0x0400121A RID: 4634
private bool is_container;
// Token: 0x0400121B RID: 4635
private bool is_ds;
// Token: 0x0400121C RID: 4636
private bool access_rules_modified;
// Token: 0x0400121D RID: 4637
private bool audit_rules_modified;
// Token: 0x0400121E RID: 4638
private bool group_modified;
// Token: 0x0400121F RID: 4639
private bool owner_modified;
}
}
@@ -0,0 +1,59 @@
using System;
using System.Runtime.Serialization;
namespace System.Security.AccessControl
{
/// <summary>The exception that is thrown when a method in the <see cref="N:System.Security.AccessControl" /> namespace attempts to enable a privilege that it does not have.</summary>
// Token: 0x020004D5 RID: 1237
[Serializable]
public sealed class PrivilegeNotHeldException : UnauthorizedAccessException, ISerializable
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.PrivilegeNotHeldException" /> class.</summary>
// Token: 0x06002DFA RID: 11770 RVA: 0x000940B8 File Offset: 0x000922B8
public PrivilegeNotHeldException()
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.PrivilegeNotHeldException" /> class by using the specified privilege.</summary>
/// <param name="privilege">The privilege that is not enabled.</param>
// Token: 0x06002DFB RID: 11771 RVA: 0x000940C0 File Offset: 0x000922C0
public PrivilegeNotHeldException(string privilege)
: base(privilege)
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.PrivilegeNotHeldException" /> class by using the specified exception.</summary>
/// <param name="privilege">The privilege that is not enabled.</param>
/// <param name="inner">The exception that is the cause of the current exception. If the <paramref name="innerException" /> parameter is not a null reference (Nothing in Visual Basic), the current exception is raised in a catch block that handles the inner exception.</param>
// Token: 0x06002DFC RID: 11772 RVA: 0x000940CC File Offset: 0x000922CC
public PrivilegeNotHeldException(string privilege, Exception inner)
: base(privilege, inner)
{
}
/// <summary>Gets the name of the privilege that is not enabled.</summary>
/// <returns>The name of the privilege that the method failed to enable.</returns>
// Token: 0x17000914 RID: 2324
// (get) Token: 0x06002DFD RID: 11773 RVA: 0x000940D8 File Offset: 0x000922D8
public string PrivilegeName
{
get
{
throw new NotImplementedException();
}
}
/// <summary>Sets the <paramref name="info" /> parameter with information about the exception.</summary>
/// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo" /> that holds the serialized object data about the exception being thrown.</param>
/// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext" /> that contains contextual information about the source or destination.</param>
/// <PermissionSet>
/// <IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Read="*AllFiles*" PathDiscovery="*AllFiles*" />
/// </PermissionSet>
// Token: 0x06002DFE RID: 11774 RVA: 0x000940E0 File Offset: 0x000922E0
[MonoTODO]
public override void GetObjectData(SerializationInfo info, StreamingContext context)
{
throw new NotImplementedException();
}
}
}
@@ -0,0 +1,20 @@
using System;
namespace System.Security.AccessControl
{
/// <summary>Specifies how Access Control Entries (ACEs) are propagated to child objects. These flags are significant only if inheritance flags are present. </summary>
// Token: 0x020004D6 RID: 1238
[Flags]
public enum PropagationFlags
{
/// <summary>Specifies that no inheritance flags are set.</summary>
// Token: 0x04001221 RID: 4641
None = 0,
/// <summary>Specifies that the ACE is not propagated to child objects.</summary>
// Token: 0x04001222 RID: 4642
NoPropagateInherit = 1,
/// <summary>Specifies that the ACE is propagated only to child objects. This includes both container and leaf child objects. </summary>
// Token: 0x04001223 RID: 4643
InheritOnly = 2
}
}
@@ -0,0 +1,83 @@
using System;
namespace System.Security.AccessControl
{
/// <summary>Represents an Access Control Entry (ACE) that contains a qualifier. The qualifier, represented by an <see cref="T:System.Security.AccessControl.AceQualifier" /> object, specifies whether the ACE allows access, denies access, causes system audits, or causes system alarms. The <see cref="T:System.Security.AccessControl.QualifiedAce" /> class is the abstract base class for the <see cref="T:System.Security.AccessControl.CommonAce" /> and <see cref="T:System.Security.AccessControl.ObjectAce" /> classes.</summary>
// Token: 0x020004D7 RID: 1239
public abstract class QualifiedAce : KnownAce
{
// Token: 0x06002DFF RID: 11775 RVA: 0x000940E8 File Offset: 0x000922E8
internal QualifiedAce(InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AceQualifier aceQualifier, bool isCallback, byte[] opaque)
: base(inheritanceFlags, propagationFlags)
{
this.ace_qualifier = aceQualifier;
this.is_callback = isCallback;
this.SetOpaque(opaque);
}
/// <summary>Gets a value that specifies whether the ACE allows access, denies access, causes system audits, or causes system alarms.</summary>
/// <returns>A value that specifies whether the ACE allows access, denies access, causes system audits, or causes system alarms.</returns>
// Token: 0x17000915 RID: 2325
// (get) Token: 0x06002E00 RID: 11776 RVA: 0x0009410C File Offset: 0x0009230C
public AceQualifier AceQualifier
{
get
{
return this.ace_qualifier;
}
}
/// <summary>Specifies whether this <see cref="T:System.Security.AccessControl.QualifiedAce" /> object contains callback data.</summary>
/// <returns>true if this <see cref="T:System.Security.AccessControl.QualifiedAce" /> object contains callback data; otherwise, false.</returns>
// Token: 0x17000916 RID: 2326
// (get) Token: 0x06002E01 RID: 11777 RVA: 0x00094114 File Offset: 0x00092314
public bool IsCallback
{
get
{
return this.is_callback;
}
}
/// <summary>Gets the length of the opaque callback data associated with this <see cref="T:System.Security.AccessControl.QualifiedAce" /> object. This property is valid only for callback Access Control Entries (ACEs).</summary>
/// <returns>The length of the opaque callback data.</returns>
// Token: 0x17000917 RID: 2327
// (get) Token: 0x06002E02 RID: 11778 RVA: 0x0009411C File Offset: 0x0009231C
public int OpaqueLength
{
get
{
return this.opaque.Length;
}
}
/// <summary>Returns the opaque callback data associated with this <see cref="T:System.Security.AccessControl.QualifiedAce" /> object. </summary>
/// <returns>An array of byte values that represents the opaque callback data associated with this <see cref="T:System.Security.AccessControl.QualifiedAce" /> object.</returns>
// Token: 0x06002E03 RID: 11779 RVA: 0x00094128 File Offset: 0x00092328
public byte[] GetOpaque()
{
return (byte[])this.opaque.Clone();
}
/// <summary>Sets the opaque callback data associated with this <see cref="T:System.Security.AccessControl.QualifiedAce" /> object.</summary>
/// <param name="opaque">An array of byte values that represents the opaque callback data for this <see cref="T:System.Security.AccessControl.QualifiedAce" /> object.</param>
// Token: 0x06002E04 RID: 11780 RVA: 0x0009413C File Offset: 0x0009233C
public void SetOpaque(byte[] opaque)
{
if (opaque == null)
{
throw new ArgumentNullException("opaque");
}
this.opaque = (byte[])opaque.Clone();
}
// Token: 0x04001224 RID: 4644
private AceQualifier ace_qualifier;
// Token: 0x04001225 RID: 4645
private bool is_callback;
// Token: 0x04001226 RID: 4646
private byte[] opaque;
}
}
@@ -0,0 +1,124 @@
using System;
using System.Collections.Generic;
namespace System.Security.AccessControl
{
/// <summary>Represents an Access Control List (ACL).</summary>
// Token: 0x020004D8 RID: 1240
public sealed class RawAcl : GenericAcl
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.RawAcl" /> class with the specified revision level.</summary>
/// <param name="revision">The revision level of the new Access Control List (ACL).</param>
/// <param name="capacity">The number of Access Control Entries (ACEs) this <see cref="T:System.Security.AccessControl.RawAcl" /> object can contain. This number is to be used only as a hint.</param>
// Token: 0x06002E05 RID: 11781 RVA: 0x0009416C File Offset: 0x0009236C
public RawAcl(byte revision, int capacity)
{
this.revision = revision;
this.list = new List<GenericAce>(capacity);
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.RawAcl" /> class from the specified binary form.</summary>
/// <param name="binaryForm">An array of byte values that represent an Access Control List (ACL).</param>
/// <param name="offset">The offset in the <paramref name="binaryForm" /> parameter at which to begin unmarshaling data.</param>
// Token: 0x06002E06 RID: 11782 RVA: 0x00094188 File Offset: 0x00092388
public RawAcl(byte[] binaryForm, int offset)
: this(0, 10)
{
}
/// <summary>Gets the length, in bytes, of the binary representation of the current <see cref="T:System.Security.AccessControl.RawAcl" /> object. This length should be used before marshaling the ACL into a binary array with the <see cref="M:System.Security.AccessControl.RawAcl.GetBinaryForm" /> method.</summary>
/// <returns>The length, in bytes, of the binary representation of the current <see cref="T:System.Security.AccessControl.RawAcl" /> object.</returns>
// Token: 0x17000918 RID: 2328
// (get) Token: 0x06002E07 RID: 11783 RVA: 0x00094194 File Offset: 0x00092394
[MonoTODO]
public override int BinaryLength
{
get
{
throw new NotImplementedException();
}
}
/// <summary>Gets the number of access control entries (ACEs) in the current <see cref="T:System.Security.AccessControl.RawAcl" /> object.</summary>
/// <returns>The number of ACEs in the current <see cref="T:System.Security.AccessControl.RawAcl" /> object.</returns>
// Token: 0x17000919 RID: 2329
// (get) Token: 0x06002E08 RID: 11784 RVA: 0x0009419C File Offset: 0x0009239C
public override int Count
{
get
{
return this.list.Count;
}
}
/// <summary>Gets or sets the Access Control Entry (ACE) at the specified index.</summary>
/// <returns>The ACE at the specified index.</returns>
/// <param name="index">The zero-based index of the ACE to get or set.</param>
// Token: 0x1700091A RID: 2330
public override GenericAce this[int index]
{
get
{
return this.list[index];
}
set
{
this.list[index] = value;
}
}
/// <summary>Gets the revision level of the <see cref="T:System.Security.AccessControl.RawAcl" />.</summary>
/// <returns>A byte value that specifies the revision level of the <see cref="T:System.Security.AccessControl.RawAcl" />.</returns>
// Token: 0x1700091B RID: 2331
// (get) Token: 0x06002E0B RID: 11787 RVA: 0x000941CC File Offset: 0x000923CC
public override byte Revision
{
get
{
return this.revision;
}
}
/// <summary>Marshals the contents of the <see cref="T:System.Security.AccessControl.RawAcl" /> object into the specified byte array beginning at the specified offset.</summary>
/// <param name="binaryForm">The byte array into which the contents of the <see cref="T:System.Security.AccessControl.RawAcl" /> is marshaled.</param>
/// <param name="offset">The offset at which to start marshaling.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="offset" /> is negative or too high to allow the entire <see cref="T:System.Security.AccessControl.RawAcl" /> to be copied into <paramref name="array" />.</exception>
// Token: 0x06002E0C RID: 11788 RVA: 0x000941D4 File Offset: 0x000923D4
[MonoTODO]
public override void GetBinaryForm(byte[] binaryForm, int offset)
{
throw new NotImplementedException();
}
/// <summary>Inserts the specified Access Control Entry (ACE) at the specified index.</summary>
/// <param name="index">The position at which to add the new ACE. Specify the value of the <see cref="P:System.Security.AccessControl.RawAcl.Count" /> property to insert an ACE at the end of the <see cref="T:System.Security.AccessControl.RawAcl" /> object.</param>
/// <param name="ace">The ACE to insert.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="offset" /> is negative or too high to allow the entire <see cref="T:System.Security.AccessControl.GenericAcl" /> to be copied into <paramref name="array" />.</exception>
// Token: 0x06002E0D RID: 11789 RVA: 0x000941DC File Offset: 0x000923DC
public void InsertAce(int index, GenericAce ace)
{
if (ace == null)
{
throw new ArgumentNullException("ace");
}
this.list.Insert(index, ace);
}
/// <summary>Removes the Access Control Entry (ACE) at the specified location.</summary>
/// <param name="index">The zero-based index of the ACE to remove.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">The value of the <paramref name="index" /> parameter is higher than the value of the <see cref="P:System.Security.AccessControl.RawAcl.Count" /> property minus one or is negative.</exception>
// Token: 0x06002E0E RID: 11790 RVA: 0x00094210 File Offset: 0x00092410
public void RemoveAce(int index)
{
this.list.RemoveAt(index);
}
// Token: 0x04001227 RID: 4647
private byte revision;
// Token: 0x04001228 RID: 4648
private List<GenericAce> list;
}
}
@@ -0,0 +1,141 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Represents a security descriptor. A security descriptor includes an owner, a primary group, a Discretionary Access Control List (DACL), and a System Access Control List (SACL).</summary>
// Token: 0x020004D9 RID: 1241
public sealed class RawSecurityDescriptor : GenericSecurityDescriptor
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.RawSecurityDescriptor" /> class from the specified Security Descriptor Definition Language (SDDL) string.</summary>
/// <param name="sddlForm">The SDDL string from which to create the new <see cref="T:System.Security.AccessControl.RawSecurityDescriptor" /> object.</param>
// Token: 0x06002E0F RID: 11791 RVA: 0x00094220 File Offset: 0x00092420
public RawSecurityDescriptor(string sddlForm)
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.RawSecurityDescriptor" /> class from the specified array of byte values.</summary>
/// <param name="binaryForm">The array of byte values from which to create the new <see cref="T:System.Security.AccessControl.RawSecurityDescriptor" /> object.</param>
/// <param name="offset">The offset in the <paramref name="binaryForm" /> array at which to begin copying.</param>
// Token: 0x06002E10 RID: 11792 RVA: 0x00094228 File Offset: 0x00092428
public RawSecurityDescriptor(byte[] binaryForm, int offset)
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.RawSecurityDescriptor" /> class with the specified values.</summary>
/// <param name="flags">Flags that specify behavior of the new <see cref="T:System.Security.AccessControl.RawSecurityDescriptor" /> object.</param>
/// <param name="owner">The owner for the new <see cref="T:System.Security.AccessControl.RawSecurityDescriptor" /> object.</param>
/// <param name="group">The primary group for the new <see cref="T:System.Security.AccessControl.RawSecurityDescriptor" /> object.</param>
/// <param name="systemAcl">The System Access Control List (SACL) for the new <see cref="T:System.Security.AccessControl.RawSecurityDescriptor" /> object.</param>
/// <param name="discretionaryAcl">The Discretionary Access Control List (DACL) for the new <see cref="T:System.Security.AccessControl.RawSecurityDescriptor" /> object.</param>
// Token: 0x06002E11 RID: 11793 RVA: 0x00094230 File Offset: 0x00092430
public RawSecurityDescriptor(ControlFlags flags, SecurityIdentifier owner, SecurityIdentifier group, RawAcl systemAcl, RawAcl discretionaryAcl)
{
}
/// <summary>Gets values that specify behavior of the <see cref="T:System.Security.AccessControl.RawSecurityDescriptor" /> object.</summary>
/// <returns>One or more values of the <see cref="T:System.Security.AccessControl.ControlFlags" /> enumeration combined with a logical OR operation.</returns>
// Token: 0x1700091C RID: 2332
// (get) Token: 0x06002E12 RID: 11794 RVA: 0x00094238 File Offset: 0x00092438
public override ControlFlags ControlFlags
{
get
{
throw new NotImplementedException();
}
}
/// <summary>Gets or sets the Discretionary Access Control List (DACL) for this <see cref="T:System.Security.AccessControl.RawSecurityDescriptor" /> object. The DACL contains access rules.</summary>
/// <returns>The DACL for this <see cref="T:System.Security.AccessControl.RawSecurityDescriptor" /> object.</returns>
// Token: 0x1700091D RID: 2333
// (get) Token: 0x06002E13 RID: 11795 RVA: 0x00094240 File Offset: 0x00092440
// (set) Token: 0x06002E14 RID: 11796 RVA: 0x00094248 File Offset: 0x00092448
public RawAcl DiscretionaryAcl
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}
/// <summary>Gets or sets the primary group for this <see cref="T:System.Security.AccessControl.RawSecurityDescriptor" /> object.</summary>
/// <returns>The primary group for this <see cref="T:System.Security.AccessControl.RawSecurityDescriptor" /> object.</returns>
// Token: 0x1700091E RID: 2334
// (get) Token: 0x06002E15 RID: 11797 RVA: 0x00094250 File Offset: 0x00092450
// (set) Token: 0x06002E16 RID: 11798 RVA: 0x00094258 File Offset: 0x00092458
public override SecurityIdentifier Group
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}
/// <summary>Gets or sets the owner of the object associated with this <see cref="T:System.Security.AccessControl.RawSecurityDescriptor" /> object.</summary>
/// <returns>The owner of the object associated with this <see cref="T:System.Security.AccessControl.RawSecurityDescriptor" /> object.</returns>
// Token: 0x1700091F RID: 2335
// (get) Token: 0x06002E17 RID: 11799 RVA: 0x00094260 File Offset: 0x00092460
// (set) Token: 0x06002E18 RID: 11800 RVA: 0x00094268 File Offset: 0x00092468
public override SecurityIdentifier Owner
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}
/// <summary>Gets or sets a byte value that represents the resource manager control bits associated with this <see cref="T:System.Security.AccessControl.RawSecurityDescriptor" /> object.</summary>
/// <returns>A byte value that represents the resource manager control bits associated with this <see cref="T:System.Security.AccessControl.RawSecurityDescriptor" /> object.</returns>
// Token: 0x17000920 RID: 2336
// (get) Token: 0x06002E19 RID: 11801 RVA: 0x00094270 File Offset: 0x00092470
// (set) Token: 0x06002E1A RID: 11802 RVA: 0x00094278 File Offset: 0x00092478
public byte ResourceManagerControl
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}
/// <summary>Gets or sets the System Access Control List (SACL) for this <see cref="T:System.Security.AccessControl.RawSecurityDescriptor" /> object. The SACL contains audit rules.</summary>
/// <returns>The SACL for this <see cref="T:System.Security.AccessControl.RawSecurityDescriptor" /> object.</returns>
// Token: 0x17000921 RID: 2337
// (get) Token: 0x06002E1B RID: 11803 RVA: 0x00094280 File Offset: 0x00092480
// (set) Token: 0x06002E1C RID: 11804 RVA: 0x00094288 File Offset: 0x00092488
public RawAcl SystemAcl
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}
/// <summary>Sets the <see cref="P:System.Security.AccessControl.RawSecurityDescriptor.ControlFlags" /> property of this <see cref="T:System.Security.AccessControl.RawSecurityDescriptor" /> object to the specified value.</summary>
/// <param name="flags">One or more values of the <see cref="T:System.Security.AccessControl.ControlFlags" /> enumeration combined with a logical OR operation.</param>
// Token: 0x06002E1D RID: 11805 RVA: 0x00094290 File Offset: 0x00092490
public void SetFlags(ControlFlags flags)
{
throw new NotImplementedException();
}
}
}
@@ -0,0 +1,94 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Represents a set of access rights allowed or denied for a user or group. This class cannot be inherited.</summary>
// Token: 0x020004DA RID: 1242
public sealed class RegistryAccessRule : AccessRule
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.RegistryAccessRule" /> class, specifying the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied.</summary>
/// <param name="identity">The user or group the rule applies to. Must be of type <see cref="T:System.Security.Principal.SecurityIdentifier" /> or a type such as <see cref="T:System.Security.Principal.NTAccount" /> that can be converted to type <see cref="T:System.Security.Principal.SecurityIdentifier" />.</param>
/// <param name="registryRights">A bitwise combination of <see cref="T:System.Security.AccessControl.RegistryRights" /> values indicating the rights allowed or denied.</param>
/// <param name="type">One of the <see cref="T:System.Security.AccessControl.AccessControlType" /> values indicating whether the rights are allowed or denied.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="registryRights" /> specifies an invalid value.-or-<paramref name="type" /> specifies an invalid value.</exception>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="identity" /> is null. -or-<paramref name="eventRights" /> is zero.</exception>
/// <exception cref="T:System.ArgumentException">
/// <paramref name="identity" /> is neither of type <see cref="T:System.Security.Principal.SecurityIdentifier" /> nor of a type such as <see cref="T:System.Security.Principal.NTAccount" /> that can be converted to type <see cref="T:System.Security.Principal.SecurityIdentifier" />.</exception>
// Token: 0x06002E1E RID: 11806 RVA: 0x00094298 File Offset: 0x00092498
public RegistryAccessRule(IdentityReference identity, RegistryRights registryRights, AccessControlType type)
: this(identity, registryRights, InheritanceFlags.None, PropagationFlags.None, type)
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.RegistryAccessRule" /> class, specifying the name of the user or group the rule applies to, the access rights, and whether the specified access rights are allowed or denied.</summary>
/// <param name="identity">The name of the user or group the rule applies to.</param>
/// <param name="registryRights">A bitwise combination of <see cref="T:System.Security.AccessControl.RegistryRights" /> values indicating the rights allowed or denied.</param>
/// <param name="type">One of the <see cref="T:System.Security.AccessControl.AccessControlType" /> values indicating whether the rights are allowed or denied.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="registryRights" /> specifies an invalid value.-or-<paramref name="type" /> specifies an invalid value.</exception>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="registryRights" /> is zero.</exception>
/// <exception cref="T:System.ArgumentException">
/// <paramref name="identity" /> is null.-or-<paramref name="identity" /> is a zero-length string.-or-<paramref name="identity" /> is longer than 512 characters.</exception>
// Token: 0x06002E1F RID: 11807 RVA: 0x000942A8 File Offset: 0x000924A8
public RegistryAccessRule(string identity, RegistryRights registryRights, AccessControlType type)
: this(new SecurityIdentifier(identity), registryRights, type)
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.RegistryAccessRule" /> class, specifying the user or group the rule applies to, the access rights, the inheritance flags, the propagation flags, and whether the specified access rights are allowed or denied.</summary>
/// <param name="identity">The user or group the rule applies to. Must be of type <see cref="T:System.Security.Principal.SecurityIdentifier" /> or a type such as <see cref="T:System.Security.Principal.NTAccount" /> that can be converted to type <see cref="T:System.Security.Principal.SecurityIdentifier" />.</param>
/// <param name="registryRights">A bitwise combination of <see cref="T:System.Security.AccessControl.RegistryRights" /> values specifying the rights allowed or denied.</param>
/// <param name="inheritanceFlags">A bitwise combination of <see cref="T:System.Security.AccessControl.InheritanceFlags" /> flags specifying how access rights are inherited from other objects.</param>
/// <param name="propagationFlags">A bitwise combination of <see cref="T:System.Security.AccessControl.PropagationFlags" /> flags specifying how access rights are propagated to other objects.</param>
/// <param name="type">One of the <see cref="T:System.Security.AccessControl.AccessControlType" /> values specifying whether the rights are allowed or denied.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="registryRights" /> specifies an invalid value.-or-<paramref name="type" /> specifies an invalid value.-or-<paramref name="inheritanceFlags" /> specifies an invalid value.-or-<paramref name="propagationFlags" /> specifies an invalid value.</exception>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="identity" /> is null.-or-<paramref name="registryRights" /> is zero.</exception>
/// <exception cref="T:System.ArgumentException">
/// <paramref name="identity" /> is neither of type <see cref="T:System.Security.Principal.SecurityIdentifier" />, nor of a type such as <see cref="T:System.Security.Principal.NTAccount" /> that can be converted to type <see cref="T:System.Security.Principal.SecurityIdentifier" />.</exception>
// Token: 0x06002E20 RID: 11808 RVA: 0x000942B8 File Offset: 0x000924B8
public RegistryAccessRule(IdentityReference identity, RegistryRights registryRights, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType type)
: base(identity, 0, false, inheritanceFlags, propagationFlags, type)
{
this.rights = registryRights;
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.RegistryAccessRule" /> class, specifying the name of the user or group the rule applies to, the access rights, the inheritance flags, the propagation flags, and whether the specified access rights are allowed or denied.</summary>
/// <param name="identity">The name of the user or group the rule applies to.</param>
/// <param name="registryRights">A bitwise combination of <see cref="T:System.Security.AccessControl.RegistryRights" /> values indicating the rights allowed or denied.</param>
/// <param name="inheritanceFlags">A bitwise combination of <see cref="T:System.Security.AccessControl.InheritanceFlags" /> flags specifying how access rights are inherited from other objects.</param>
/// <param name="propagationFlags">A bitwise combination of <see cref="T:System.Security.AccessControl.PropagationFlags" /> flags specifying how access rights are propagated to other objects.</param>
/// <param name="type">One of the <see cref="T:System.Security.AccessControl.AccessControlType" /> values specifying whether the rights are allowed or denied.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="registryRights" /> specifies an invalid value.-or-<paramref name="type" /> specifies an invalid value.-or-<paramref name="inheritanceFlags" /> specifies an invalid value.-or-<paramref name="propagationFlags" /> specifies an invalid value.</exception>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="eventRights" /> is zero.</exception>
/// <exception cref="T:System.ArgumentException">
/// <paramref name="identity" /> is null.-or-<paramref name="identity" /> is a zero-length string.-or-<paramref name="identity" /> is longer than 512 characters.</exception>
// Token: 0x06002E21 RID: 11809 RVA: 0x000942D0 File Offset: 0x000924D0
public RegistryAccessRule(string identity, RegistryRights registryRights, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType type)
: this(new SecurityIdentifier(identity), registryRights, inheritanceFlags, propagationFlags, type)
{
}
/// <summary>Gets the rights allowed or denied by the access rule.</summary>
/// <returns>A bitwise combination of <see cref="T:System.Security.AccessControl.RegistryRights" /> values indicating the rights allowed or denied by the access rule.</returns>
// Token: 0x17000922 RID: 2338
// (get) Token: 0x06002E22 RID: 11810 RVA: 0x000942E4 File Offset: 0x000924E4
public RegistryRights RegistryRights
{
get
{
return this.rights;
}
}
// Token: 0x04001229 RID: 4649
private RegistryRights rights;
}
}
@@ -0,0 +1,62 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Represents a set of access rights to be audited for a user or group. This class cannot be inherited.</summary>
// Token: 0x020004DB RID: 1243
public sealed class RegistryAuditRule : AuditRule
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.RegistryAuditRule" /> class, specifying the user or group to audit, the rights to audit, whether to take inheritance into account, and whether to audit success, failure, or both.</summary>
/// <param name="identity">The user or group the rule applies to. Must be of type <see cref="T:System.Security.Principal.SecurityIdentifier" /> or a type such as <see cref="T:System.Security.Principal.NTAccount" /> that can be converted to type <see cref="T:System.Security.Principal.SecurityIdentifier" />.</param>
/// <param name="registryRights">A bitwise combination of <see cref="T:System.Security.AccessControl.RegistryRights" /> values specifying the kinds of access to audit.</param>
/// <param name="inheritanceFlags">A bitwise combination of <see cref="T:System.Security.AccessControl.InheritanceFlags" /> values specifying whether the audit rule applies to subkeys of the current key.</param>
/// <param name="propagationFlags">A bitwise combination of <see cref="T:System.Security.AccessControl.PropagationFlags" /> values that affect the way an inherited audit rule is propagated to subkeys of the current key.</param>
/// <param name="flags">A bitwise combination of <see cref="T:System.Security.AccessControl.AuditFlags" /> values specifying whether to audit success, failure, or both.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="eventRights" /> specifies an invalid value.-or-<paramref name="flags" /> specifies an invalid value.-or-<paramref name="inheritanceFlags" /> specifies an invalid value.-or-<paramref name="propagationFlags" /> specifies an invalid value.</exception>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="identity" /> is null. -or-<paramref name="registryRights" /> is zero.</exception>
/// <exception cref="T:System.ArgumentException">
/// <paramref name="identity" /> is neither of type <see cref="T:System.Security.Principal.SecurityIdentifier" /> nor of a type such as <see cref="T:System.Security.Principal.NTAccount" /> that can be converted to type <see cref="T:System.Security.Principal.SecurityIdentifier" />.</exception>
// Token: 0x06002E23 RID: 11811 RVA: 0x000942EC File Offset: 0x000924EC
public RegistryAuditRule(IdentityReference identity, RegistryRights registryRights, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AuditFlags flags)
: base(identity, 0, false, inheritanceFlags, propagationFlags, flags)
{
this.rights = registryRights;
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.RegistryAuditRule" /> class, specifying the name of the user or group to audit, the rights to audit, whether to take inheritance into account, and whether to audit success, failure, or both.</summary>
/// <param name="identity">The name of the user or group the rule applies to.</param>
/// <param name="registryRights">A bitwise combination of <see cref="T:System.Security.AccessControl.RegistryRights" /> values specifying the kinds of access to audit.</param>
/// <param name="inheritanceFlags">A combination of <see cref="T:System.Security.AccessControl.InheritanceFlags" /> flags that specifies whether the audit rule applies to subkeys of the current key.</param>
/// <param name="propagationFlags">A combination of <see cref="T:System.Security.AccessControl.PropagationFlags" /> flags that affect the way an inherited audit rule is propagated to subkeys of the current key.</param>
/// <param name="flags">A bitwise combination of <see cref="T:System.Security.AccessControl.AuditFlags" /> values specifying whether to audit success, failure, or both.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="eventRights" /> specifies an invalid value.-or-<paramref name="flags" /> specifies an invalid value.-or-<paramref name="inheritanceFlags" /> specifies an invalid value.-or-<paramref name="propagationFlags" /> specifies an invalid value.</exception>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="registryRights" /> is zero.</exception>
/// <exception cref="T:System.ArgumentException">
/// <paramref name="identity" /> is null.-or-<paramref name="identity" /> is a zero-length string.-or-<paramref name="identity" /> is longer than 512 characters.</exception>
// Token: 0x06002E24 RID: 11812 RVA: 0x00094304 File Offset: 0x00092504
public RegistryAuditRule(string identity, RegistryRights registryRights, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AuditFlags flags)
: this(new SecurityIdentifier(identity), registryRights, inheritanceFlags, propagationFlags, flags)
{
}
/// <summary>Gets the access rights affected by the audit rule.</summary>
/// <returns>A bitwise combination of <see cref="T:System.Security.AccessControl.RegistryRights" /> values that indicates the rights affected by the audit rule.</returns>
// Token: 0x17000923 RID: 2339
// (get) Token: 0x06002E25 RID: 11813 RVA: 0x00094318 File Offset: 0x00092518
public RegistryRights RegistryRights
{
get
{
return this.rights;
}
}
// Token: 0x0400122A RID: 4650
private RegistryRights rights;
}
}
@@ -0,0 +1,53 @@
using System;
namespace System.Security.AccessControl
{
/// <summary>Specifies the access control rights that can be applied to registry objects.</summary>
// Token: 0x020004DC RID: 1244
[Flags]
public enum RegistryRights
{
/// <summary>The right to query the name/value pairs in a registry key.</summary>
// Token: 0x0400122C RID: 4652
QueryValues = 1,
/// <summary>The right to create, delete, or set name/value pairs in a registry key.</summary>
// Token: 0x0400122D RID: 4653
SetValue = 2,
/// <summary>The right to create subkeys of a registry key.</summary>
// Token: 0x0400122E RID: 4654
CreateSubKey = 4,
/// <summary>The right to list the subkeys of a registry key.</summary>
// Token: 0x0400122F RID: 4655
EnumerateSubKeys = 8,
/// <summary>The right to request notification of changes on a registry key.</summary>
// Token: 0x04001230 RID: 4656
Notify = 16,
/// <summary>Reserved for system use.</summary>
// Token: 0x04001231 RID: 4657
CreateLink = 32,
/// <summary>The right to delete a registry key.</summary>
// Token: 0x04001232 RID: 4658
Delete = 65536,
/// <summary>The right to open and copy the access rules and audit rules for a registry key.</summary>
// Token: 0x04001233 RID: 4659
ReadPermissions = 131072,
/// <summary>The right to create, delete, and set the name/value pairs in a registry key, to create or delete subkeys, to request notification of changes, to enumerate its subkeys, and to read its access rules and audit rules.</summary>
// Token: 0x04001234 RID: 4660
WriteKey = 131078,
/// <summary>The right to query the name/value pairs in a registry key, to request notification of changes, to enumerate its subkeys, and to read its access rules and audit rules.</summary>
// Token: 0x04001235 RID: 4661
ReadKey = 131097,
/// <summary>Same as <see cref="F:System.Security.AccessControl.RegistryRights.ReadKey" />.</summary>
// Token: 0x04001236 RID: 4662
ExecuteKey = 131097,
/// <summary>The right to change the access rules and audit rules associated with a registry key.</summary>
// Token: 0x04001237 RID: 4663
ChangePermissions = 262144,
/// <summary>The right to change the owner of a registry key.</summary>
// Token: 0x04001238 RID: 4664
TakeOwnership = 524288,
/// <summary>The right to exert full control over a registry key, and to modify its access rules and audit rules.</summary>
// Token: 0x04001239 RID: 4665
FullControl = 983103
}
}
@@ -0,0 +1,194 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Represents the Windows access control security for a registry key. This class cannot be inherited.</summary>
// Token: 0x020004DD RID: 1245
public sealed class RegistrySecurity : NativeObjectSecurity
{
/// <summary>Gets the enumeration type that the <see cref="T:System.Security.AccessControl.RegistrySecurity" /> class uses to represent access rights.</summary>
/// <returns>A <see cref="T:System.Type" /> object representing the <see cref="T:System.Security.AccessControl.RegistryRights" /> enumeration.</returns>
// Token: 0x17000924 RID: 2340
// (get) Token: 0x06002E27 RID: 11815 RVA: 0x00094328 File Offset: 0x00092528
public override Type AccessRightType
{
get
{
return typeof(RegistryRights);
}
}
/// <summary>Gets the type that the <see cref="T:System.Security.AccessControl.RegistrySecurity" /> class uses to represent access rules.</summary>
/// <returns>A <see cref="T:System.Type" /> object representing the <see cref="T:System.Security.AccessControl.RegistryAccessRule" /> class.</returns>
// Token: 0x17000925 RID: 2341
// (get) Token: 0x06002E28 RID: 11816 RVA: 0x00094334 File Offset: 0x00092534
public override Type AccessRuleType
{
get
{
return typeof(RegistryAccessRule);
}
}
/// <summary>Gets the type that the <see cref="T:System.Security.AccessControl.RegistrySecurity" /> class uses to represent audit rules.</summary>
/// <returns>A <see cref="T:System.Type" /> object representing the <see cref="T:System.Security.AccessControl.RegistryAuditRule" /> class.</returns>
// Token: 0x17000926 RID: 2342
// (get) Token: 0x06002E29 RID: 11817 RVA: 0x00094340 File Offset: 0x00092540
public override Type AuditRuleType
{
get
{
return typeof(RegistryAuditRule);
}
}
/// <summary>Creates a new access control rule for the specified user, with the specified access rights, access control, and flags.</summary>
/// <returns>A <see cref="T:System.Security.AccessControl.RegistryAccessRule" /> object representing the specified rights for the specified user.</returns>
/// <param name="identityReference">An <see cref="T:System.Security.Principal.IdentityReference" /> that identifies the user or group the rule applies to.</param>
/// <param name="accessMask">A bitwise combination of <see cref="T:System.Security.AccessControl.RegistryRights" /> values specifying the access rights to allow or deny, cast to an integer.</param>
/// <param name="isInherited">A Boolean value specifying whether the rule is inherited.</param>
/// <param name="inheritanceFlags">A bitwise combination of <see cref="T:System.Security.AccessControl.InheritanceFlags" /> values specifying how the rule is inherited by subkeys.</param>
/// <param name="propagationFlags">A bitwise combination of <see cref="T:System.Security.AccessControl.PropagationFlags" /> values that modify the way the rule is inherited by subkeys. Meaningless if the value of <paramref name="inheritanceFlags" /> is <see cref="F:System.Security.AccessControl.InheritanceFlags.None" />.</param>
/// <param name="type">One of the <see cref="T:System.Security.AccessControl.AccessControlType" /> values specifying whether the rights are allowed or denied.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="accessMask" />, <paramref name="inheritanceFlags" />, <paramref name="propagationFlags" />, or <paramref name="type" /> specifies an invalid value.</exception>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="identityReference" /> is null. -or-<paramref name="accessMask" /> is zero.</exception>
/// <exception cref="T:System.ArgumentException">
/// <paramref name="identityReference" /> is neither of type <see cref="T:System.Security.Principal.SecurityIdentifier" />, nor of a type such as <see cref="T:System.Security.Principal.NTAccount" /> that can be converted to type <see cref="T:System.Security.Principal.SecurityIdentifier" />.</exception>
// Token: 0x06002E2A RID: 11818 RVA: 0x0009434C File Offset: 0x0009254C
public override AccessRule AccessRuleFactory(IdentityReference identityReference, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType type)
{
return new RegistryAccessRule(identityReference, (RegistryRights)accessMask, inheritanceFlags, propagationFlags, type);
}
/// <summary>Searches for a matching access control with which the new rule can be merged. If none are found, adds the new rule.</summary>
/// <param name="rule">The access control rule to add.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002E2B RID: 11819 RVA: 0x0009435C File Offset: 0x0009255C
public void AddAccessRule(RegistryAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Searches for an audit rule with which the new rule can be merged. If none are found, adds the new rule.</summary>
/// <param name="rule">The audit rule to add. The user specified by this rule determines the search.</param>
// Token: 0x06002E2C RID: 11820 RVA: 0x00094364 File Offset: 0x00092564
public void AddAuditRule(RegistryAuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Creates a new audit rule, specifying the user the rule applies to, the access rights to audit, the inheritance and propagation of the rule, and the outcome that triggers the rule.</summary>
/// <returns>A <see cref="T:System.Security.AccessControl.RegistryAuditRule" /> object representing the specified audit rule for the specified user, with the specified flags. The return type of the method is the base class, <see cref="T:System.Security.AccessControl.AuditRule" />, but the return value can be cast safely to the derived class.</returns>
/// <param name="identityReference">An <see cref="T:System.Security.Principal.IdentityReference" /> that identifies the user or group the rule applies to.</param>
/// <param name="accessMask">A bitwise combination of <see cref="T:System.Security.AccessControl.RegistryRights" /> values specifying the access rights to audit, cast to an integer.</param>
/// <param name="isInherited">A Boolean value specifying whether the rule is inherited.</param>
/// <param name="inheritanceFlags">A bitwise combination of <see cref="T:System.Security.AccessControl.InheritanceFlags" /> values specifying how the rule is inherited by subkeys.</param>
/// <param name="propagationFlags">A bitwise combination of <see cref="T:System.Security.AccessControl.PropagationFlags" /> values that modify the way the rule is inherited by subkeys. Meaningless if the value of <paramref name="inheritanceFlags" /> is <see cref="F:System.Security.AccessControl.InheritanceFlags.None" />.</param>
/// <param name="flags">A bitwise combination of <see cref="T:System.Security.AccessControl.AuditFlags" /> values specifying whether to audit successful access, failed access, or both.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="accessMask" />, <paramref name="inheritanceFlags" />, <paramref name="propagationFlags" />, or <paramref name="flags" /> specifies an invalid value.</exception>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="identityReference" /> is null. -or-<paramref name="accessMask" /> is zero.</exception>
/// <exception cref="T:System.ArgumentException">
/// <paramref name="identityReference" /> is neither of type <see cref="T:System.Security.Principal.SecurityIdentifier" />, nor of a type such as <see cref="T:System.Security.Principal.NTAccount" /> that can be converted to type <see cref="T:System.Security.Principal.SecurityIdentifier" />.</exception>
// Token: 0x06002E2D RID: 11821 RVA: 0x0009436C File Offset: 0x0009256C
public override AuditRule AuditRuleFactory(IdentityReference identityReference, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AuditFlags flags)
{
return new RegistryAuditRule(identityReference, (RegistryRights)accessMask, inheritanceFlags, propagationFlags, flags);
}
/// <summary>Searches for an access control rule with the same user and <see cref="T:System.Security.AccessControl.AccessControlType" /> (allow or deny) as the specified access rule, and with compatible inheritance and propagation flags; if such a rule is found, the rights contained in the specified access rule are removed from it.</summary>
/// <returns>true if a compatible rule is found; otherwise false.</returns>
/// <param name="rule">A <see cref="T:System.Security.AccessControl.RegistryAccessRule" /> that specifies the user and <see cref="T:System.Security.AccessControl.AccessControlType" /> to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Specifies the rights to remove from the compatible rule, if found.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002E2E RID: 11822 RVA: 0x0009437C File Offset: 0x0009257C
public bool RemoveAccessRule(RegistryAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Searches for all access control rules with the same user and <see cref="T:System.Security.AccessControl.AccessControlType" /> (allow or deny) as the specified rule and, if found, removes them.</summary>
/// <param name="rule">A <see cref="T:System.Security.AccessControl.RegistryAccessRule" /> that specifies the user and <see cref="T:System.Security.AccessControl.AccessControlType" /> to search for. Any rights, inheritance flags, or propagation flags specified by this rule are ignored.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002E2F RID: 11823 RVA: 0x00094384 File Offset: 0x00092584
public void RemoveAccessRuleAll(RegistryAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Searches for an access control rule that exactly matches the specified rule and, if found, removes it.</summary>
/// <param name="rule">The <see cref="T:System.Security.AccessControl.RegistryAccessRule" /> to remove.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002E30 RID: 11824 RVA: 0x0009438C File Offset: 0x0009258C
public void RemoveAccessRuleSpecific(RegistryAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Searches for an audit control rule with the same user as the specified rule, and with compatible inheritance and propagation flags; if a compatible rule is found, the rights contained in the specified rule are removed from it.</summary>
/// <returns>true if a compatible rule is found; otherwise, false.</returns>
/// <param name="rule">A <see cref="T:System.Security.AccessControl.RegistryAuditRule" /> that specifies the user to search for, and a set of inheritance and propagation flags that a matching rule, if found, must be compatible with. Specifies the rights to remove from the compatible rule, if found.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002E31 RID: 11825 RVA: 0x00094394 File Offset: 0x00092594
public bool RemoveAuditRule(RegistryAuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Searches for all audit rules with the same user as the specified rule and, if found, removes them.</summary>
/// <param name="rule">A <see cref="T:System.Security.AccessControl.RegistryAuditRule" /> that specifies the user to search for. Any rights, inheritance flags, or propagation flags specified by this rule are ignored.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002E32 RID: 11826 RVA: 0x0009439C File Offset: 0x0009259C
public void RemoveAuditRuleAll(RegistryAuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Searches for an audit rule that exactly matches the specified rule and, if found, removes it.</summary>
/// <param name="rule">The <see cref="T:System.Security.AccessControl.RegistryAuditRule" /> to be removed.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002E33 RID: 11827 RVA: 0x000943A4 File Offset: 0x000925A4
public void RemoveAuditRuleSpecific(RegistryAuditRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all access control rules with the same user as the specified rule, regardless of <see cref="T:System.Security.AccessControl.AccessControlType" />, and then adds the specified rule.</summary>
/// <param name="rule">The <see cref="T:System.Security.AccessControl.RegistryAccessRule" /> to add. The user specified by this rule determines the rules to remove before this rule is added.</param>
// Token: 0x06002E34 RID: 11828 RVA: 0x000943AC File Offset: 0x000925AC
public void ResetAccessRule(RegistryAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all access control rules with the same user and <see cref="T:System.Security.AccessControl.AccessControlType" /> (allow or deny) as the specified rule, and then adds the specified rule.</summary>
/// <param name="rule">The <see cref="T:System.Security.AccessControl.RegistryAccessRule" /> to add. The user and <see cref="T:System.Security.AccessControl.AccessControlType" /> of this rule determine the rules to remove before this rule is added.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002E35 RID: 11829 RVA: 0x000943B4 File Offset: 0x000925B4
public void SetAccessRule(RegistryAccessRule rule)
{
throw new NotImplementedException();
}
/// <summary>Removes all audit rules with the same user as the specified rule, regardless of the <see cref="T:System.Security.AccessControl.AuditFlags" /> value, and then adds the specified rule.</summary>
/// <param name="rule">The <see cref="T:System.Security.AccessControl.RegistryAuditRule" /> to add. The user specified by this rule determines the rules to remove before this rule is added.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="rule" /> is null.</exception>
// Token: 0x06002E36 RID: 11830 RVA: 0x000943BC File Offset: 0x000925BC
public void SetAuditRule(RegistryAuditRule rule)
{
throw new NotImplementedException();
}
}
}
@@ -0,0 +1,49 @@
using System;
namespace System.Security.AccessControl
{
/// <summary>Specifies the defined native object types.</summary>
// Token: 0x020004DE RID: 1246
public enum ResourceType
{
/// <summary>An unknown object type.</summary>
// Token: 0x0400123B RID: 4667
Unknown,
/// <summary>A file or directory.</summary>
// Token: 0x0400123C RID: 4668
FileObject,
/// <summary>A Windows service.</summary>
// Token: 0x0400123D RID: 4669
Service,
/// <summary>A printer.</summary>
// Token: 0x0400123E RID: 4670
Printer,
/// <summary>A registry key.</summary>
// Token: 0x0400123F RID: 4671
RegistryKey,
/// <summary>A network share.</summary>
// Token: 0x04001240 RID: 4672
LMShare,
/// <summary>A local kernel object.</summary>
// Token: 0x04001241 RID: 4673
KernelObject,
/// <summary>A window station or desktop object on the local computer.</summary>
// Token: 0x04001242 RID: 4674
WindowObject,
/// <summary>A directory service (DS) object or a property set or property of a directory service object.</summary>
// Token: 0x04001243 RID: 4675
DSObject,
/// <summary>A directory service object and all of its property sets and properties.</summary>
// Token: 0x04001244 RID: 4676
DSObjectAll,
/// <summary>An object defined by a provider.</summary>
// Token: 0x04001245 RID: 4677
ProviderDefined,
/// <summary>A Windows Management Instrumentation (WMI) object.</summary>
// Token: 0x04001246 RID: 4678
WmiGuidObject,
/// <summary>An object for a registry entry under WOW64.</summary>
// Token: 0x04001247 RID: 4679
RegistryWow6432Key
}
}
@@ -0,0 +1,23 @@
using System;
namespace System.Security.AccessControl
{
/// <summary>Specifies the section of a security descriptor to be queried or set.</summary>
// Token: 0x020004DF RID: 1247
[Flags]
public enum SecurityInfos
{
/// <summary>Specifies the owner identifier.</summary>
// Token: 0x04001249 RID: 4681
Owner = 1,
/// <summary>Specifies the primary group identifier.</summary>
// Token: 0x0400124A RID: 4682
Group = 2,
/// <summary>Specifies the discretionary access control list (DACL).</summary>
// Token: 0x0400124B RID: 4683
DiscretionaryAcl = 4,
/// <summary>Specifies the system access control list (SACL).</summary>
// Token: 0x0400124C RID: 4684
SystemAcl = 8
}
}
@@ -0,0 +1,151 @@
using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// <summary>Represents a System Access Control List (SACL).</summary>
// Token: 0x020004E0 RID: 1248
public sealed class SystemAcl : CommonAcl
{
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.SystemAcl" /> class with the specified values.</summary>
/// <param name="isContainer">true if the new <see cref="T:System.Security.AccessControl.SystemAcl" /> object is a container.</param>
/// <param name="isDS">true if the new <see cref="T:System.Security.AccessControl.SystemAcl" /> object is a directory object Access Control List (ACL).</param>
/// <param name="capacity">The number of Access Control Entries (ACEs) this <see cref="T:System.Security.AccessControl.SystemAcl" /> object can contain. This number is to be used only as a hint.</param>
// Token: 0x06002E37 RID: 11831 RVA: 0x000943C4 File Offset: 0x000925C4
public SystemAcl(bool isContainer, bool isDS, int capacity)
: this(isContainer, isDS, 0, capacity)
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.SystemAcl" /> class with the specified values from the specified <see cref="T:System.Security.AccessControl.RawAcl" /> object.</summary>
/// <param name="isContainer">true if the new <see cref="T:System.Security.AccessControl.SystemAcl" /> object is a container.</param>
/// <param name="isDS">true if the new <see cref="T:System.Security.AccessControl.SystemAcl" /> object is a directory object Access Control List (ACL).</param>
/// <param name="rawAcl">The underlying <see cref="T:System.Security.AccessControl.RawAcl" /> object for the new <see cref="T:System.Security.AccessControl.SystemAcl" /> object. Specify null to create an empty ACL.</param>
// Token: 0x06002E38 RID: 11832 RVA: 0x000943D0 File Offset: 0x000925D0
public SystemAcl(bool isContainer, bool isDS, RawAcl rawAcl)
: this(isContainer, isDS, 0)
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Security.AccessControl.SystemAcl" /> class with the specified values.</summary>
/// <param name="isContainer">true if the new <see cref="T:System.Security.AccessControl.SystemAcl" /> object is a container.</param>
/// <param name="isDS">true if the new <see cref="T:System.Security.AccessControl.SystemAcl" /> object is a directory object Access Control List (ACL).</param>
/// <param name="revision">The revision level of the new <see cref="T:System.Security.AccessControl.SystemAcl" /> object.</param>
/// <param name="capacity">The number of Access Control Entries (ACEs) this <see cref="T:System.Security.AccessControl.SystemAcl" /> object can contain. This number is to be used only as a hint.</param>
// Token: 0x06002E39 RID: 11833 RVA: 0x000943DC File Offset: 0x000925DC
public SystemAcl(bool isContainer, bool isDS, byte revision, int capacity)
: base(isContainer, isDS, revision, capacity)
{
}
/// <summary>Adds an audit rule to the current <see cref="T:System.Security.AccessControl.SystemAcl" /> object.</summary>
/// <param name="auditFlags">The type of audit rule to add.</param>
/// <param name="sid">The <see cref="T:System.Security.Principal.SecurityIdentifier" /> for which to add an audit rule.</param>
/// <param name="accessMask">The access mask for the new audit rule.</param>
/// <param name="inheritanceFlags">Flags that specify the inheritance properties of the new audit rule.</param>
/// <param name="propagationFlags">Flags that specify the inheritance propagation properties for the new audit rule.</param>
// Token: 0x06002E3A RID: 11834 RVA: 0x000943EC File Offset: 0x000925EC
public void AddAudit(AuditFlags auditFlags, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags)
{
throw new NotImplementedException();
}
/// <summary>Adds an audit rule with the specified settings to the current <see cref="T:System.Security.AccessControl.SystemAcl" /> object. Use this method for directory object Access Control Lists (ACLs) when specifying the object type or the inherited object type for the new audit rule.</summary>
/// <param name="auditFlags">The type of audit rule to add.</param>
/// <param name="sid">The <see cref="T:System.Security.Principal.SecurityIdentifier" /> for which to add an audit rule.</param>
/// <param name="accessMask">The access mask for the new audit rule.</param>
/// <param name="inheritanceFlags">Flags that specify the inheritance properties of the new audit rule.</param>
/// <param name="propagationFlags">Flags that specify the inheritance propagation properties for the new audit rule.</param>
/// <param name="objectFlags">Flags that specify if the <paramref name="objectType" /> and <paramref name="inheritedObjectType" /> parameters contain non-null values.</param>
/// <param name="objectType">The identity of the class of objects to which the new audit rule applies.</param>
/// <param name="inheritedObjectType">The identity of the class of child objects which can inherit the new audit rule.</param>
// Token: 0x06002E3B RID: 11835 RVA: 0x000943F4 File Offset: 0x000925F4
public void AddAudit(AuditFlags auditFlags, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, ObjectAceFlags objectFlags, Guid objectType, Guid inheritedObjectType)
{
throw new NotImplementedException();
}
/// <summary>Removes the specified audit rule from the current <see cref="T:System.Security.AccessControl.SystemAcl" /> object.</summary>
/// <returns>true if this method successfully removes the specified audit rule; otherwise, false.</returns>
/// <param name="auditFlags">The type of audit rule to remove.</param>
/// <param name="sid">The <see cref="T:System.Security.Principal.SecurityIdentifier" /> for which to remove an audit rule.</param>
/// <param name="accessMask">The access mask for the rule to be removed.</param>
/// <param name="inheritanceFlags">Flags that specify the inheritance properties of the rule to be removed.</param>
/// <param name="propagationFlags">Flags that specify the inheritance propagation properties for the rule to be removed.</param>
// Token: 0x06002E3C RID: 11836 RVA: 0x000943FC File Offset: 0x000925FC
public bool RemoveAudit(AuditFlags auditFlags, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags)
{
throw new NotImplementedException();
}
/// <summary>Removes the specified audit rule from the current <see cref="T:System.Security.AccessControl.SystemAcl" /> object. Use this method for directory object Access Control Lists (ACLs) when specifying the object type or the inherited object type.</summary>
/// <returns>true if this method successfully removes the specified audit rule; otherwise, false.</returns>
/// <param name="auditFlags">The type of audit rule to remove.</param>
/// <param name="sid">The <see cref="T:System.Security.Principal.SecurityIdentifier" /> for which to remove an audit rule.</param>
/// <param name="accessMask">The access mask for the rule to be removed.</param>
/// <param name="inheritanceFlags">Flags that specify the inheritance properties of the rule to be removed.</param>
/// <param name="propagationFlags">Flags that specify the inheritance propagation properties for the rule to be removed.</param>
/// <param name="objectFlags">Flags that specify if the <paramref name="objectType" /> and <paramref name="inheritedObjectType" /> parameters contain non-null values.</param>
/// <param name="objectType">The identity of the class of objects to which the removed audit control rule applies.</param>
/// <param name="inheritedObjectType">The identity of the class of child objects which can inherit the removed audit rule.</param>
// Token: 0x06002E3D RID: 11837 RVA: 0x00094404 File Offset: 0x00092604
public bool RemoveAudit(AuditFlags auditFlags, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, ObjectAceFlags objectFlags, Guid objectType, Guid inheritedObjectType)
{
throw new NotImplementedException();
}
/// <summary>Removes the specified audit rule from the current <see cref="T:System.Security.AccessControl.DiscretionaryAcl" /> object.</summary>
/// <param name="auditFlags">The type of audit rule to remove.</param>
/// <param name="sid">The <see cref="T:System.Security.Principal.SecurityIdentifier" /> for which to remove an audit rule.</param>
/// <param name="accessMask">The access mask for the rule to be removed.</param>
/// <param name="inheritanceFlags">Flags that specify the inheritance properties of the rule to be removed.</param>
/// <param name="propagationFlags">Flags that specify the inheritance propagation properties for the rule to be removed.</param>
// Token: 0x06002E3E RID: 11838 RVA: 0x0009440C File Offset: 0x0009260C
public void RemoveAuditSpecific(AuditFlags auditFlags, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags)
{
throw new NotImplementedException();
}
/// <summary>Removes the specified audit rule from the current <see cref="T:System.Security.AccessControl.DiscretionaryAcl" /> object. Use this method for directory object Access Control Lists (ACLs) when specifying the object type or the inherited object type.</summary>
/// <param name="auditFlags">The type of audit rule to remove.</param>
/// <param name="sid">The <see cref="T:System.Security.Principal.SecurityIdentifier" /> for which to remove an audit rule.</param>
/// <param name="accessMask">The access mask for the rule to be removed.</param>
/// <param name="inheritanceFlags">Flags that specify the inheritance properties of the rule to be removed.</param>
/// <param name="propagationFlags">Flags that specify the inheritance propagation properties for the rule to be removed.</param>
/// <param name="objectFlags">Flags that specify if the <paramref name="objectType" /> and <paramref name="inheritedObjectType" /> parameters contain non-null values.</param>
/// <param name="objectType">The identity of the class of objects to which the removed audit control rule applies.</param>
/// <param name="inheritedObjectType">The identity of the class of child objects which can inherit the removed audit rule.</param>
// Token: 0x06002E3F RID: 11839 RVA: 0x00094414 File Offset: 0x00092614
public void RemoveAuditSpecific(AuditFlags auditFlags, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, ObjectAceFlags objectFlags, Guid objectType, Guid inheritedObjectType)
{
throw new NotImplementedException();
}
/// <summary>Sets the specified audit rule for the specified <see cref="T:System.Security.Principal.SecurityIdentifier" /> object.</summary>
/// <param name="auditFlags">The audit condition to set.</param>
/// <param name="sid">The <see cref="T:System.Security.Principal.SecurityIdentifier" /> for which to set an audit rule.</param>
/// <param name="accessMask">The access mask for the new audit rule.</param>
/// <param name="inheritanceFlags">Flags that specify the inheritance properties of the new audit rule.</param>
/// <param name="propagationFlags">Flags that specify the inheritance propagation properties for the new audit rule.</param>
// Token: 0x06002E40 RID: 11840 RVA: 0x0009441C File Offset: 0x0009261C
public void SetAudit(AuditFlags auditFlags, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags)
{
throw new NotImplementedException();
}
/// <summary>Sets the specified audit rule for the specified <see cref="T:System.Security.Principal.SecurityIdentifier" /> object. Use this method for directory object Access Control Lists (ACLs) when specifying the object type or the inherited object type.</summary>
/// <param name="auditFlags">The audit condition to set.</param>
/// <param name="sid">The <see cref="T:System.Security.Principal.SecurityIdentifier" /> for which to set an audit rule.</param>
/// <param name="accessMask">The access mask for the new audit rule.</param>
/// <param name="inheritanceFlags">Flags that specify the inheritance properties of the new audit rule.</param>
/// <param name="propagationFlags">Flags that specify the inheritance propagation properties for the new audit rule.</param>
/// <param name="objectFlags">Flags that specify if the <paramref name="objectType" /> and <paramref name="inheritedObjectType" /> parameters contain non-null values.</param>
/// <param name="objectType">The identity of the class of objects to which the new audit rule applies.</param>
/// <param name="inheritedObjectType">The identity of the class of child objects which can inherit the new audit rule.</param>
// Token: 0x06002E41 RID: 11841 RVA: 0x00094424 File Offset: 0x00092624
public void SetAudit(AuditFlags auditFlags, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, ObjectAceFlags objectFlags, Guid objectType, Guid inheritedObjectType)
{
throw new NotImplementedException();
}
}
}