Imported Upstream version 4.2.0.179

Former-commit-id: 4610231f55806d2a05ed69e5ff3faa7336cc1479
This commit is contained in:
Xamarin Public Jenkins
2015-08-26 07:17:56 -04:00
committed by Jo Shields
parent aa7da660d6
commit c042cd0c52
7507 changed files with 90259 additions and 657307 deletions

View File

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