/// <include file='doc\Site.uex' path='docs/doc[@for="Site.CreateFromUrl"]/*' /> public static Site CreateFromUrl( String url ) { Site site = new Site(); site.m_name = ParseSiteFromUrl( url ); return site; }
public void Site_GoMonoWebSite () { Site s = new Site ("www.go-mono.com"); Assert.AreEqual ("www.go-mono.com", s.Name, "Name"); Assert.AreEqual ("<System.Security.Policy.Site version=\"1\">" + Environment.NewLine + "<Name>www.go-mono.com</Name>" + Environment.NewLine + "</System.Security.Policy.Site>" + Environment.NewLine, s.ToString (), "ToString"); Site s2 = (Site) s.Copy (); Assert.AreEqual (s.Name, s2.Name, "Copy.Name"); Assert.AreEqual (s.GetHashCode (), s2.GetHashCode (), "Copy.GetHashCode"); SiteIdentityPermission sip = (SiteIdentityPermission) s.CreateIdentityPermission (null); Assert.AreEqual (s.Name, sip.Site, "CreateIdentityPermission"); Assert.IsTrue (s.Equals (s2), "Equals"); Site s3 = new Site ("go-mono.com"); Assert.IsTrue (!s.Equals (s3), "!Equals"); }
public void Check () { AllMembershipCondition all = new AllMembershipCondition (); Evidence e = null; Assert.IsTrue (all.Check (e), "Check (null)"); e = new Evidence (); Assert.IsTrue (all.Check (e), "Check (empty)"); e.AddHost (new Zone (SecurityZone.MyComputer)); Assert.IsTrue (all.Check (e), "Check (zone)"); Url u = new Url ("http://www.go-mono.com/"); e.AddAssembly (u); Assert.IsTrue (all.Check (e), "Check (all-assembly)"); Site s = new Site ("www.go-mono.com"); e.AddHost (s); Assert.IsTrue (all.Check (e), "Check (all-host)"); }
public void FixtureSetUp () { wrongEvidence = new Site ("test"); allEmpty = new Evidence (); hostInternet = CreateHostEvidence (new Zone (SecurityZone.Internet)); hostIntranet = CreateHostEvidence (new Zone (SecurityZone.Intranet)); hostMyComputer = CreateHostEvidence (new Zone (SecurityZone.MyComputer)); hostNoZone = CreateHostEvidence (new Zone (SecurityZone.NoZone)); hostTrusted = CreateHostEvidence (new Zone (SecurityZone.Trusted)); hostUntrusted = CreateHostEvidence (new Zone (SecurityZone.Untrusted)); hostOther = CreateHostEvidence (wrongEvidence); assemblyInternet = CreateAssemblyEvidence (new Zone (SecurityZone.Internet)); assemblyIntranet = CreateAssemblyEvidence (new Zone (SecurityZone.Intranet)); assemblyMyComputer = CreateAssemblyEvidence (new Zone (SecurityZone.MyComputer)); assemblyNoZone = CreateAssemblyEvidence (new Zone (SecurityZone.NoZone)); assemblyTrusted = CreateAssemblyEvidence (new Zone (SecurityZone.Trusted)); assemblyUntrusted = CreateAssemblyEvidence (new Zone (SecurityZone.Untrusted)); assemblyOther = CreateAssemblyEvidence (wrongEvidence); }
public void Site_GoMonoWebSite () { Site s = new Site ("www.go-mono.com"); AssertEquals ("Name", "www.go-mono.com", s.Name); #if NET_2_0 AssertEquals ("ToString", "<System.Security.Policy.Site version=\"1\">" + Environment.NewLine + "<Name>www.go-mono.com</Name>" + Environment.NewLine + "</System.Security.Policy.Site>" + Environment.NewLine, s.ToString ()); #else AssertEquals ("ToString", "<System.Security.Policy.Site version=\"1\">" + Environment.NewLine + " <Name>www.go-mono.com</Name>" + Environment.NewLine + "</System.Security.Policy.Site>" + Environment.NewLine, s.ToString ()); #endif Site s2 = (Site) s.Copy (); AssertEquals ("Copy.Name", s.Name, s2.Name); AssertEquals ("Copy.GetHashCode", s.GetHashCode (), s2.GetHashCode ()); SiteIdentityPermission sip = (SiteIdentityPermission) s.CreateIdentityPermission (null); AssertEquals ("CreateIdentityPermission", s.Name, sip.Site); Assert ("Equals", s.Equals (s2)); Site s3 = new Site ("go-mono.com"); Assert ("!Equals", !s.Equals (s3)); }
public void Site_FullUrlWithPort () { Site s = new Site ("http://www.go-mono.com:8080/index.html"); }
public void Site_AllGoMono () { Site s = new Site ("http://*.go-mono.com"); }
public void Site_FileUrl () { Site s = new Site ("file://mono/index.html"); }
public void Site_Empty () { Site s = new Site (String.Empty); }
/// <summary>从指定的 URL 创建新的 <see cref="T:System.Security.Policy.Site" /> 对象。</summary> /// <returns>一个新的站点对象。</returns> /// <param name="url">用于创建新 <see cref="T:System.Security.Policy.Site" /> 对象的 URL 。</param> /// <exception cref="T:System.ArgumentException"> /// <paramref name="url" /> 参数不是有效的 URL。- 或 -<paramref name="url" /> 参数是一个文件名。</exception> public static Site CreateFromUrl(string url) { return(new Site(Site.ParseSiteFromUrl(url))); }
private void GenerateLocationEvidence() { if (!this.m_generatedLocationEvidence) { SecurityZone noZone = SecurityZone.NoZone; string s = null; GetLocationEvidence(this.m_peFile, out noZone, JitHelpers.GetStringHandleOnStack(ref s)); if (noZone != SecurityZone.NoZone) { this.m_zoneEvidence = new Zone(noZone); } if (!string.IsNullOrEmpty(s)) { this.m_urlEvidence = new Url(s, true); if (!s.StartsWith("file:", StringComparison.OrdinalIgnoreCase)) { this.m_siteEvidence = Site.CreateFromUrl(s); } } this.m_generatedLocationEvidence = true; } }
public void FixtureSetUp () { wrongEvidence = new Site ("test"); allEmpty = new Evidence (); AssemblyName an = typeof (int).Assembly.GetName (); name = an.Name; version = an.Version; blob = new StrongNamePublicKeyBlob (an.GetPublicKey ()); ms = new StrongNamePublicKeyBlob (_msFinalKey); hostEcmaCorlibVersion = CreateHostEvidence (new StrongName (blob, name, version)); hostEcmaVersion = CreateHostEvidence (new StrongName (blob, " ", version)); hostMsSystemSecurityVersion = CreateHostEvidence (new StrongName (ms, "System.Security", version)); hostMsVersion = CreateHostEvidence (new StrongName (ms, " ", version)); hostOther = CreateHostEvidence (wrongEvidence); assemblyEcmaCorlibVersion = CreateAssemblyEvidence (new StrongName (blob, name, version)); assemblyEcmaVersion = CreateAssemblyEvidence (new StrongName (blob, " ", version)); assemblyMsSystemSecurityVersion = CreateAssemblyEvidence (new StrongName (ms, "System.Security", version)); assemblyMsVersion = CreateAssemblyEvidence (new StrongName (ms, " ", version)); assemblyOther = CreateAssemblyEvidence (wrongEvidence); }
public void Site_TwoStars () { Site s = new Site ("*.*.go-mono.com"); }
public void EqualsPartial () { Site s1 = new Site ("www.go-mono.com"); Site s2 = new Site ("*.go-mono.com"); Assert ("Partial:1-2", !s1.Equals (s2)); Assert ("Partial:2-1", !s2.Equals (s1)); }
public void Site_GoMonoAllTLD () { Site s = new Site ("www.go-mono.*"); }
public static void AddHostEvidence (this Evidence evidence, Site site) { throw new NotImplementedException (); }
internal Evidence(char[] buffer) { int position = 0; while (position < buffer.Length) { switch (buffer[position++]) { case BuiltInEvidenceHelper.idApplicationDirectory: { IBuiltInEvidence ad = new ApplicationDirectory(); position = ad.InitFromBuffer(buffer, position); AddAssembly(ad); break; } case BuiltInEvidenceHelper.idStrongName: { IBuiltInEvidence sn = new StrongName(); position = sn.InitFromBuffer(buffer, position); AddHost(sn); break; } case BuiltInEvidenceHelper.idZone: { IBuiltInEvidence z = new Zone(); position = z.InitFromBuffer(buffer, position); AddHost(z); break; } case BuiltInEvidenceHelper.idUrl: { IBuiltInEvidence u = new Url(); position = u.InitFromBuffer(buffer, position); AddHost(u); break; } case BuiltInEvidenceHelper.idSite: { IBuiltInEvidence s = new Site(); position = s.InitFromBuffer(buffer, position); AddHost(s); break; } case BuiltInEvidenceHelper.idPermissionRequestEvidence: { IBuiltInEvidence pre = new PermissionRequestEvidence(); position = pre.InitFromBuffer(buffer, position); AddHost(pre); break; } default: throw new SerializationException(Environment.GetResourceString("Serialization_UnableToFixup")); } // switch } // while }
public void EqualsCaseSensitive () { Site s1 = new Site ("*.go-mono.com"); Site s2 = new Site ("*.Go-Mono.com"); Assert ("CaseSensitive", s1.Equals (s2)); }
public void Site_GetRequiredSize () { Site s = new Site ("www.mono-project.com"); Assert.AreEqual (23, GetRequiredSize (s, true), "GetRequiredSize-true"); Assert.AreEqual (21, GetRequiredSize (s, false), "GetRequiredSize-false"); s = new Site ("www.go-mono.com"); Assert.AreEqual (18, GetRequiredSize (s, true), "GetRequiredSize-true-2"); Assert.AreEqual (16, GetRequiredSize (s, false), "GetRequiredSize-false-2"); }
public void EqualsCaseSensitive () { Site s1 = new Site ("*.go-mono.com"); Site s2 = new Site ("*.Go-Mono.com"); Assert.IsTrue (s1.Equals (s2), "CaseSensitive"); }
public void EqualsNull () { Site s1 = new Site ("*.go-mono.com"); Assert ("EqualsNull", !s1.Equals (null)); }
public void Check () { SiteMembershipCondition smc = new SiteMembershipCondition ("*.go-mono.com"); Evidence e = null; Assert.IsFalse (smc.Check (e), "Check(null)"); e = new Evidence (); Assert.IsFalse (smc.Check (e), "Check (empty)"); e.AddHost (new Zone (SecurityZone.MyComputer)); Assert.IsFalse (smc.Check (e), "Check (zone)"); Site s = new Site ("*.go-mono.com"); e.AddAssembly (s); Assert.IsFalse (smc.Check (e), "Check (site-assembly)"); e.AddHost (s); Assert.IsTrue (smc.Check (e), "Check (site-host)"); e = new Evidence (); e.AddHost (new Site ("www.go-mono.com")); Assert.IsTrue (smc.Check (e), "Check(+-)"); e = new Evidence (); e.AddHost (new Site ("*.go-mono.org")); Assert.IsFalse (smc.Check (e), "Check(-)"); }
public void EqualsPartial () { Site s1 = new Site ("www.go-mono.com"); Site s2 = new Site ("*.go-mono.com"); Assert.IsTrue (!s1.Equals (s2), "Partial:1-2"); Assert.IsTrue (!s2.Equals (s1), "Partial:2-1"); }
private void GenerateLocationEvidence() { if (!m_generatedLocationEvidence) { SecurityZone securityZone = SecurityZone.NoZone; string url = null; GetLocationEvidence(m_peFile, out securityZone, JitHelpers.GetStringHandleOnStack(ref url)); if (securityZone != SecurityZone.NoZone) { m_zoneEvidence = new Zone(securityZone); } if (!String.IsNullOrEmpty(url)) { m_urlEvidence = new Url(url, true); // We only create site evidence if the URL does not with file: if (!url.StartsWith("file:", StringComparison.OrdinalIgnoreCase)) { m_siteEvidence = Site.CreateFromUrl(url); } } m_generatedLocationEvidence = true; } }
public void EqualsNull () { Site s1 = new Site ("*.go-mono.com"); Assert.IsTrue (!s1.Equals (null), "EqualsNull"); }
public override bool Equals (object o) { if (o == null) return false; if (o is SiteMembershipCondition) { Site s = new Site ((o as SiteMembershipCondition)._site); return s.Equals (new Site (_site)); } return false; }
public void AllChars () { for (int i=1; i < 256; i++) { bool actual = false; char c = Convert.ToChar (i); try { Site s = new Site (Convert.ToString (c)); actual = true; // Console.WriteLine ("GOOD: {0} - {1}", i, c); } catch { // Console.WriteLine ("FAIL: {0} - {1}", i, c); } bool result = ((i == 45) // - || (i == 33) // ! || (i >= 35 && i <= 42) // #$%&'()* || (i >= 48 && i <= 57) // 0-9 || (i >= 94 && i <= 95) // ^_ || (i >= 97 && i <= 123) // a-z{ || (i >= 125 && i <= 126) // }~ || (i >= 64 && i <= 90)); // @,A-Z Assert.IsTrue ((actual == result), "#"+i); } }
public void Site_Null () { Site s = new Site (null); }
static internal Evidence GetDefaultHostEvidence(Assembly a) { Evidence e = new Evidence(); string aname = a.EscapedCodeBase; // by default all assembly have the Zone, Url and Hash evidences e.AddHost(Zone.CreateFromUrl(aname)); e.AddHost(new Url(aname)); e.AddHost(new Hash(a)); // non local files (e.g. http://) also get a Site evidence if (String.Compare("FILE://", 0, aname, 0, 7, true, CultureInfo.InvariantCulture) != 0) { e.AddHost(Site.CreateFromUrl(aname)); } // strongnamed assemblies gets a StrongName evidence AssemblyName an = a.UnprotectedGetName(); byte[] pk = an.GetPublicKey(); if ((pk != null) && (pk.Length > 0)) { StrongNamePublicKeyBlob blob = new StrongNamePublicKeyBlob(pk); e.AddHost(new StrongName(blob, an.Name, an.Version)); } // Authenticode(r) signed assemblies get a Publisher evidence if (IsAuthenticodePresent(a)) { // Note: The certificate is part of the evidences even if it is not trusted! // so we can't call X509Certificate.CreateFromSignedFile AuthenticodeDeformatter ad = new AuthenticodeDeformatter(a.Location); if (ad.SigningCertificate != null) { X509Certificate x509 = new X509Certificate(ad.SigningCertificate.RawData); if (x509.GetHashCode() != 0) { e.AddHost(new Publisher(x509)); } } } // assemblies loaded from the GAC also get a Gac evidence (new in Fx 2.0) if (a.GlobalAssemblyCache) { e.AddHost(new GacInstalled()); } // the current HostSecurityManager may add/remove some evidence AppDomainManager dommgr = AppDomain.CurrentDomain.DomainManager; if (dommgr != null) { if ((dommgr.HostSecurityManager.Flags & HostSecurityManagerOptions.HostAssemblyEvidence) == HostSecurityManagerOptions.HostAssemblyEvidence) { e = dommgr.HostSecurityManager.ProvideAssemblyEvidence(a, e); } } return(e); }