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 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.
// Token: 0x020004D0 RID: 1232
public abstract class ObjectAccessRule : AccessRule
{
/// Initializes a new instance of the class with the specified values.
/// The identity to which the access rule applies. It 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.
/// Specifies the inheritance properties of the access rule.
/// Specifies whether inherited access rules are automatically propagated. The propagation flags are ignored if is set to .
/// The type of object to which the rule applies.
/// The type of child object that can inherit the rule.
/// Specifies whether this rule allows or denies access.
/// The value of the parameter cannot be cast as a , or the parameter contains an invalid value.
/// The value of the parameter is 0, or the or parameters contain unrecognized flag values.
// 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;
}
/// Gets the type of child object that can inherit the object.
/// The type of child object that can inherit the object.
// Token: 0x170008FD RID: 2301
// (get) Token: 0x06002DBA RID: 11706 RVA: 0x00093DF4 File Offset: 0x00091FF4
public Guid InheritedObjectType
{
get
{
return this.inherited_object_type;
}
}
/// Gets flags that specify if the and properties of the object contain valid values.
///
/// specifies that the property contains a valid value. specifies that the property contains a valid value. These values can be combined with a logical OR.
// 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;
}
}
/// Gets the type of object to which the applies.
/// The type of object to which the applies.
// 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;
}
}