152 lines
4.6 KiB
C#
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;
|
|
}
|
|
}
|