Inheritance: EvidenceBase, IIdentityPermissionFactory
Ejemplo n.º 1
0
        /// <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;
        }
Ejemplo n.º 2
0
		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)");
		}
Ejemplo n.º 4
0
		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);
		}
Ejemplo n.º 5
0
		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));
		}
Ejemplo n.º 6
0
		public void Site_FullUrlWithPort () 
		{
			Site s = new Site ("http://www.go-mono.com:8080/index.html");
		}
Ejemplo n.º 7
0
		public void Site_AllGoMono () 
		{
			Site s = new Site ("http://*.go-mono.com");
		}
Ejemplo n.º 8
0
		public void Site_FileUrl () 
		{
			Site s = new Site ("file://mono/index.html");
		}
Ejemplo n.º 9
0
		public void Site_Empty () 
		{
			Site s = new Site (String.Empty);
		}
Ejemplo n.º 10
0
 /// <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);
		}
Ejemplo n.º 13
0
		public void Site_TwoStars () 
		{
			Site s = new Site ("*.*.go-mono.com");
		}
Ejemplo n.º 14
0
		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));
		}
Ejemplo n.º 15
0
		public void Site_GoMonoAllTLD () 
		{
			Site s = new Site ("www.go-mono.*");
		}
Ejemplo n.º 16
0
		public static void AddHostEvidence (this Evidence evidence, Site site)
		{
			throw new NotImplementedException ();
		}
Ejemplo n.º 17
0
        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
        }
Ejemplo n.º 18
0
		public void EqualsCaseSensitive () {
			Site s1 = new Site ("*.go-mono.com");
			Site s2 = new Site ("*.Go-Mono.com");
			Assert ("CaseSensitive", s1.Equals (s2));
		}
Ejemplo n.º 19
0
		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");
		}
Ejemplo n.º 20
0
		public void EqualsCaseSensitive () {
			Site s1 = new Site ("*.go-mono.com");
			Site s2 = new Site ("*.Go-Mono.com");
			Assert.IsTrue (s1.Equals (s2), "CaseSensitive");
		}
Ejemplo n.º 21
0
		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(-)");
		}
Ejemplo n.º 23
0
		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;
            }
        }
Ejemplo n.º 25
0
		public void EqualsNull () 
		{
			Site s1 = new Site ("*.go-mono.com");
			Assert.IsTrue (!s1.Equals (null), "EqualsNull");
		}
Ejemplo n.º 26
0
		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;
		}
Ejemplo n.º 27
0
		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);
			}
		}
Ejemplo n.º 28
0
		public void Site_Null () 
		{
			Site s = new Site (null);
		}
Ejemplo n.º 29
0
        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);
        }