using System; namespace System.Security.Permissions { // Token: 0x0200054A RID: 1354 [Serializable] internal sealed class HostProtectionPermission : CodeAccessPermission, IBuiltInPermission, IUnrestrictedPermission { // Token: 0x060031A1 RID: 12705 RVA: 0x000AAA7C File Offset: 0x000A8C7C public HostProtectionPermission(PermissionState state) { if (CodeAccessPermission.CheckPermissionState(state, true) == PermissionState.Unrestricted) { this._resources = HostProtectionResource.All; } else { this._resources = HostProtectionResource.None; } } // Token: 0x060031A2 RID: 12706 RVA: 0x000AAAB4 File Offset: 0x000A8CB4 public HostProtectionPermission(HostProtectionResource resources) { this.Resources = this._resources; } // Token: 0x060031A3 RID: 12707 RVA: 0x000AAAC8 File Offset: 0x000A8CC8 int IBuiltInPermission.GetTokenIndex() { return 9; } // Token: 0x170009B9 RID: 2489 // (get) Token: 0x060031A4 RID: 12708 RVA: 0x000AAACC File Offset: 0x000A8CCC // (set) Token: 0x060031A5 RID: 12709 RVA: 0x000AAAD4 File Offset: 0x000A8CD4 public HostProtectionResource Resources { get { return this._resources; } set { if (!Enum.IsDefined(typeof(HostProtectionResource), value)) { string text = string.Format(Locale.GetText("Invalid enum {0}"), value); throw new ArgumentException(text, "HostProtectionResource"); } this._resources = value; } } // Token: 0x060031A6 RID: 12710 RVA: 0x000AAB24 File Offset: 0x000A8D24 public override IPermission Copy() { return new HostProtectionPermission(this._resources); } // Token: 0x060031A7 RID: 12711 RVA: 0x000AAB34 File Offset: 0x000A8D34 public override IPermission Intersect(IPermission target) { HostProtectionPermission hostProtectionPermission = this.Cast(target); if (hostProtectionPermission == null) { return null; } if (this.IsUnrestricted() && hostProtectionPermission.IsUnrestricted()) { return new HostProtectionPermission(PermissionState.Unrestricted); } if (this.IsUnrestricted()) { return hostProtectionPermission.Copy(); } if (hostProtectionPermission.IsUnrestricted()) { return this.Copy(); } return new HostProtectionPermission(this._resources & hostProtectionPermission._resources); } // Token: 0x060031A8 RID: 12712 RVA: 0x000AABA4 File Offset: 0x000A8DA4 public override IPermission Union(IPermission target) { HostProtectionPermission hostProtectionPermission = this.Cast(target); if (hostProtectionPermission == null) { return this.Copy(); } if (this.IsUnrestricted() || hostProtectionPermission.IsUnrestricted()) { return new HostProtectionPermission(PermissionState.Unrestricted); } return new HostProtectionPermission(this._resources | hostProtectionPermission._resources); } // Token: 0x060031A9 RID: 12713 RVA: 0x000AABF8 File Offset: 0x000A8DF8 public override bool IsSubsetOf(IPermission target) { HostProtectionPermission hostProtectionPermission = this.Cast(target); if (hostProtectionPermission == null) { return this._resources == HostProtectionResource.None; } return hostProtectionPermission.IsUnrestricted() || (!this.IsUnrestricted() && (this._resources & ~hostProtectionPermission._resources) == HostProtectionResource.None); } // Token: 0x060031AA RID: 12714 RVA: 0x000AAC48 File Offset: 0x000A8E48 public override void FromXml(SecurityElement e) { CodeAccessPermission.CheckSecurityElement(e, "e", 1, 1); this._resources = (HostProtectionResource)((int)Enum.Parse(typeof(HostProtectionResource), e.Attribute("Resources"))); } // Token: 0x060031AB RID: 12715 RVA: 0x000AAC80 File Offset: 0x000A8E80 public override SecurityElement ToXml() { SecurityElement securityElement = base.Element(1); securityElement.AddAttribute("Resources", this._resources.ToString()); return securityElement; } // Token: 0x060031AC RID: 12716 RVA: 0x000AACB4 File Offset: 0x000A8EB4 public bool IsUnrestricted() { return this._resources == HostProtectionResource.All; } // Token: 0x060031AD RID: 12717 RVA: 0x000AACC4 File Offset: 0x000A8EC4 private HostProtectionPermission Cast(IPermission target) { if (target == null) { return null; } HostProtectionPermission hostProtectionPermission = target as HostProtectionPermission; if (hostProtectionPermission == null) { CodeAccessPermission.ThrowInvalidPermission(target, typeof(HostProtectionPermission)); } return hostProtectionPermission; } // Token: 0x0400143B RID: 5179 private const int version = 1; // Token: 0x0400143C RID: 5180 private HostProtectionResource _resources; } }