using System;
using System.Security.Principal;
namespace System.Security.AccessControl
{
/// Represents a combination of a user's identity, an access mask, and an access control type (allow or deny). An object also contains information about the how the rule is inherited by child objects and how that inheritance is propagated.
// Token: 0x020004A5 RID: 1189
public abstract class AccessRule : AuthorizationRule
{
/// Initializes a new instance of the class by using the specified values.
/// The identity to which the access rule applies. This parameter must be an object that can be cast as a .
/// 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.
/// true if this rule is inherited from a parent container.
/// The inheritance properties of the access rule.
/// Whether inherited access rules are automatically propagated. The propagation flags are ignored if is set to .
/// The valid access control type.
/// The value of the parameter cannot be cast as a , or the parameter contains an invalid value.
/// The value of the parameter is zero, or the or parameters contain unrecognized flag values.
// 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;
}
/// Gets the value associated with this object.
/// The value associated with this object.
// 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;
}
}