You've already forked linux-packaging-mono
Imported Upstream version 4.2.0.179
Former-commit-id: 4610231f55806d2a05ed69e5ff3faa7336cc1479
This commit is contained in:
committed by
Jo Shields
parent
aa7da660d6
commit
c042cd0c52
@@ -15,19 +15,25 @@ namespace System.Xml {
|
||||
[PermissionSetAttribute(SecurityAction.InheritanceDemand, Name = "FullTrust")]
|
||||
public partial class XmlSecureResolver : XmlResolver {
|
||||
XmlResolver resolver;
|
||||
#if !DISABLE_CAS_USE
|
||||
PermissionSet permissionSet;
|
||||
|
||||
public XmlSecureResolver(XmlResolver resolver, string securityUrl) : this(resolver, CreateEvidenceForUrl(securityUrl)) {}
|
||||
#endif
|
||||
|
||||
#if DISABLE_CAS_USE
|
||||
public XmlSecureResolver(XmlResolver resolver, Evidence evidence) : this(resolver, new PermissionSet (PermissionState.None)) {}
|
||||
public XmlSecureResolver(XmlResolver resolver, string securityUrl) : this(resolver, (PermissionSet) null) {}
|
||||
|
||||
public XmlSecureResolver(XmlResolver resolver, Evidence evidence) : this(resolver, (PermissionSet) null) {}
|
||||
#else
|
||||
public XmlSecureResolver(XmlResolver resolver, string securityUrl) : this(resolver, CreateEvidenceForUrl(securityUrl)) {}
|
||||
|
||||
public XmlSecureResolver(XmlResolver resolver, Evidence evidence) : this(resolver, SecurityManager.GetStandardSandbox(evidence)) {}
|
||||
#endif
|
||||
|
||||
public XmlSecureResolver(XmlResolver resolver, PermissionSet permissionSet) {
|
||||
this.resolver = resolver;
|
||||
#if !DISABLE_CAS_USE
|
||||
this.permissionSet = permissionSet;
|
||||
#endif
|
||||
}
|
||||
|
||||
public override ICredentials Credentials {
|
||||
@@ -35,7 +41,9 @@ namespace System.Xml {
|
||||
}
|
||||
|
||||
public override object GetEntity(Uri absoluteUri, string role, Type ofObjectToReturn) {
|
||||
#if !DISABLE_CAS_USE
|
||||
permissionSet.PermitOnly();
|
||||
#endif
|
||||
return resolver.GetEntity(absoluteUri, role, ofObjectToReturn);
|
||||
}
|
||||
|
||||
@@ -46,8 +54,8 @@ namespace System.Xml {
|
||||
}
|
||||
|
||||
public static Evidence CreateEvidenceForUrl(string securityUrl) {
|
||||
Evidence evidence = new Evidence();
|
||||
#if !DISABLE_CAS_USE
|
||||
Evidence evidence = new Evidence();
|
||||
if (securityUrl != null && securityUrl.Length > 0) {
|
||||
evidence.AddHostEvidence(new Url(securityUrl));
|
||||
evidence.AddHostEvidence(Zone.CreateFromUrl(securityUrl));
|
||||
@@ -64,10 +72,14 @@ namespace System.Xml {
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
return evidence;
|
||||
#else
|
||||
return null;
|
||||
#endif
|
||||
}
|
||||
|
||||
#if !DISABLE_CAS_USE
|
||||
[Serializable]
|
||||
private class UncDirectory : EvidenceBase, IIdentityPermissionFactory {
|
||||
private string uncDir;
|
||||
@@ -96,5 +108,6 @@ namespace System.Xml {
|
||||
return ToXml().ToString();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user