Files
Dec2017-Script-Dump/mscorlib/System/Security/Permissions/HostProtectionPermission.cs
T
2026-06-04 11:42:34 +02:00

152 lines
4.6 KiB
C#

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;
}
}