Exemplo n.º 1
0
        public void FromXml_NameEmpty()
        {
            StrongNameIdentityPermission snip = new StrongNameIdentityPermission(PermissionState.None);
            SecurityElement se = snip.ToXml();

            snip.FromXml(se);

            snip.PublicKey = new StrongNamePublicKeyBlob(ecma);
            snip.Version   = new Version("1.2.3.4");
            se             = snip.ToXml();
            snip.FromXml(se);
        }
Exemplo n.º 2
0
        public void PermissionStateNone()
        {
            StrongNameIdentityPermission snip = new StrongNameIdentityPermission(PermissionState.None);

            Assert.AreEqual(String.Empty, snip.Name, "Name");
            Assert.IsNull(snip.PublicKey, "PublicKey");
            Assert.AreEqual("0.0", snip.Version.ToString(), "Version");

            SecurityElement se = snip.ToXml();

#if NET_2_0
            Assert.IsNull(se.Attribute("Name"), "Xml-Name");
            Assert.IsNull(se.Attribute("AssemblyVersion"), "Xml-AssemblyVersion");
#else
            Assert.AreEqual(String.Empty, se.Attribute("Name"), "Xml-Name");
            Assert.AreEqual("0.0", se.Attribute("AssemblyVersion"), "Xml-AssemblyVersion");
#endif
            Assert.IsNull(se.Attribute("PublicKeyBlob"), "Xml-PublicKeyBlob");

            // because Name == String.Empty, which is illegal using the other constructor
            StrongNameIdentityPermission copy = (StrongNameIdentityPermission)snip.Copy();
            Assert.AreEqual(String.Empty, copy.Name, "Copy-Name");
#if NET_2_0
            // Strangely once copied the Name becomes equals to String.Empty in 2.0 [FDBK19351]
            Assert.IsNull(se.Attribute("AssemblyVersion"), "Copy-Version");
#else
            Assert.AreEqual("0.0", copy.Version.ToString(), "Copy-Version");
#endif
            Assert.IsNull(copy.PublicKey, "Copy-PublicKey");
        }
Exemplo n.º 3
0
        public void FromXml_WrongTag()
        {
            StrongNameIdentityPermission snip = new StrongNameIdentityPermission(PermissionState.None);
            SecurityElement se = snip.ToXml();

            se.Tag = "IMono";
            snip.FromXml(se);
        }
Exemplo n.º 4
0
        public void FromXml_WrongTagCase()
        {
            StrongNameIdentityPermission snip = new StrongNameIdentityPermission(PermissionState.None);
            SecurityElement se = snip.ToXml();

            se.Tag = "IPERMISSION";             // instead of IPermission
            snip.FromXml(se);
        }
Exemplo n.º 5
0
        public void FromXml_WrongVersion()
        {
            StrongNameIdentityPermission snip = new StrongNameIdentityPermission(PermissionState.None);
            SecurityElement se = snip.ToXml();

            se.Attributes.Remove("version");
            se.Attributes.Add("version", "2");
            snip.FromXml(se);
        }
Exemplo n.º 6
0
        public void FromXml_NoVersion()
        {
            StrongNameIdentityPermission snip = new StrongNameIdentityPermission(PermissionState.None);
            SecurityElement se = snip.ToXml();

            SecurityElement w = new SecurityElement(se.Tag);

            w.AddAttribute("class", se.Attribute("class"));
            snip.FromXml(w);
        }
Exemplo n.º 7
0
        public void FromXml_NoClass()
        {
            StrongNameIdentityPermission snip = new StrongNameIdentityPermission(PermissionState.None);
            SecurityElement se = snip.ToXml();

            SecurityElement w = new SecurityElement(se.Tag);

            w.AddAttribute("version", se.Attribute("version"));
            snip.FromXml(w);
            // doesn't even care of the class attribute presence
        }
Exemplo n.º 8
0
        public void FromXml_WrongClass()
        {
            StrongNameIdentityPermission snip = new StrongNameIdentityPermission(PermissionState.None);
            SecurityElement se = snip.ToXml();

            SecurityElement w = new SecurityElement(se.Tag);

            w.AddAttribute("class", "Wrong" + se.Attribute("class"));
            w.AddAttribute("version", se.Attribute("version"));
            snip.FromXml(w);
            // doesn't care of the class name at that stage
            // anyway the class has already be created so...
        }
Exemplo n.º 9
0
    //</Snippet5>
    //<Snippet6>
    // ToXml creates an XML encoding of the permission and its current state;
    //FromXml reconstructs a permission with the specified state from the XML encoding.
    private bool ToFromXmlDemo()
    {
        bool returnValue = true;

        StrongNameIdentityPermission snIdPerm1, snIdPerm2;

        snIdPerm1 = new StrongNameIdentityPermission(blob, "MyCompany.MyDepartment.*", new Version("1.0.0.0"));
        snIdPerm2 = new StrongNameIdentityPermission(PermissionState.None);
        snIdPerm2.FromXml(snIdPerm1.ToXml());
        Console.WriteLine("Result of ToFromXml = " + snIdPerm2.ToString() + "\n");

        return(returnValue);
    }
Exemplo n.º 10
0
        public static void StrongNameIdentityPermissionCallMethods()
        {
            StrongNameIdentityPermission snip  = new StrongNameIdentityPermission(new Permissions.PermissionState());
            StrongNameIdentityPermission snip2 = new StrongNameIdentityPermission(new Permissions.StrongNamePublicKeyBlob(new byte[1]), "test", new Version(1, 2));
            IPermission ip       = snip.Copy();
            IPermission ip2      = snip.Intersect(ip);
            bool        testbool = snip.IsSubsetOf(ip);

            ip2 = snip.Union(ip);
            SecurityElement se = new SecurityElement("");

            snip.FromXml(se);
            se = snip.ToXml();
        }
Exemplo n.º 11
0
        public void Copy_NameEmpty()
        {
            StrongNameIdentityPermission snip = new StrongNameIdentityPermission(PermissionState.None);

            snip.PublicKey = new StrongNamePublicKeyBlob(ecma);
            snip.Version   = new Version("1.2.3.4");

            // because Name == String.Empty, which is illegal using the other constructor
            // but (somewhat) required to copy the teo other informations
            StrongNameIdentityPermission copy = (StrongNameIdentityPermission)snip.Copy();

#if NET_2_0
            Assert.IsTrue(copy.Equals(snip), "Equals");
#else
            Assert.AreEqual(copy.ToXml().ToString(), snip.ToXml().ToString(), "Equals-XML");
#endif
        }
Exemplo n.º 12
0
        public void Union_SamePublicKey_DifferentVersion()
        {
            StrongNamePublicKeyBlob      blob        = new StrongNamePublicKeyBlob(ecma);
            StrongNameIdentityPermission snip        = new StrongNameIdentityPermission(blob, "mono", new Version(1, 2, 3, 4));
            StrongNameIdentityPermission diffVersion = new StrongNameIdentityPermission(blob, null, new Version(1, 2));
            StrongNameIdentityPermission result      = (StrongNameIdentityPermission)snip.Union(diffVersion);

            Assert.IsNotNull(result, "DifferentVersion");
            // new XML format is used to contain more than one site
            SecurityElement se = result.ToXml();

            Assert.AreEqual(2, se.Children.Count, "Childs");
            Assert.AreEqual("1.2.3.4", (se.Children [0] as SecurityElement).Attribute("AssemblyVersion"), "AssemblyVersion#1");
            Assert.AreEqual("1.2", (se.Children [1] as SecurityElement).Attribute("AssemblyVersion"), "AssemblyVersion#2");
            // strangely it is still versioned as 'version="1"'.
            Assert.AreEqual("1", se.Attribute("version"), "Version");
        }
Exemplo n.º 13
0
        public void Union_DifferentPk()
        {
            StrongNamePublicKeyBlob      blob   = new StrongNamePublicKeyBlob(ecma);
            StrongNameIdentityPermission snip   = new StrongNameIdentityPermission(blob, "mono", new Version(1, 2, 3, 4));
            StrongNamePublicKeyBlob      blob2  = new StrongNamePublicKeyBlob(new byte [16]);
            StrongNameIdentityPermission diffPk = new StrongNameIdentityPermission(blob2, "mono", new Version(1, 2, 3, 4));
            StrongNameIdentityPermission result = (StrongNameIdentityPermission)snip.Union(diffPk);

            Assert.IsNotNull(result, "DifferentPk");
            // new XML format is used to contain more than one site
            SecurityElement se = result.ToXml();

            Assert.AreEqual(2, se.Children.Count, "Childs");
            Assert.AreEqual("00000000000000000400000000000000", (se.Children [0] as SecurityElement).Attribute("PublicKeyBlob"), "Blob#1");
            Assert.AreEqual("00000000000000000000000000000000", (se.Children [1] as SecurityElement).Attribute("PublicKeyBlob"), "Blob#2");
            // strangely it is still versioned as 'version="1"'.
            Assert.AreEqual("1", se.Attribute("version"), "Version");
        }
Exemplo n.º 14
0
        public void PermissionStateUnrestricted()
        {
            // In 2.0 Unrestricted are permitted for identity permissions
            StrongNameIdentityPermission snip = new StrongNameIdentityPermission(PermissionState.Unrestricted);

            Assert.AreEqual(String.Empty, snip.Name, "Name");
            Assert.IsNull(snip.PublicKey, "PublicKey");
            Assert.AreEqual("0.0", snip.Version.ToString(), "Version");
            SecurityElement se = snip.ToXml();

            Assert.IsNull(se.Attribute("Name"), "Xml-Name");
            Assert.IsNull(se.Attribute("PublicKeyBlob"), "Xml-PublicKeyBlob");
            Assert.IsNull(se.Attribute("AssemblyVersion"), "Xml-AssemblyVersion");
            StrongNameIdentityPermission copy = (StrongNameIdentityPermission)snip.Copy();

            Assert.IsTrue(snip.Equals(copy), "snip Equals copy");
            Assert.IsTrue(copy.Equals(snip), "copy Equals snip");
            // and they aren't equals to None
            Assert.IsFalse(snip.Equals(new StrongNameIdentityPermission(PermissionState.None)), "Not Equals None");
        }
Exemplo n.º 15
0
        public void Union_SamePublicKey_DifferentName()
        {
            StrongNamePublicKeyBlob      blob     = new StrongNamePublicKeyBlob(ecma);
            StrongNameIdentityPermission snip     = new StrongNameIdentityPermission(blob, "mono", new Version(1, 2, 3, 4));
            StrongNameIdentityPermission diffName = new StrongNameIdentityPermission(blob, "novell", null);
            StrongNameIdentityPermission result   = (StrongNameIdentityPermission)snip.Union(diffName);

#if NET_2_0
            Assert.IsNotNull(result, "DifferentName");
            // new XML format is used to contain more than one site
            SecurityElement se = result.ToXml();
            Assert.AreEqual(2, se.Children.Count, "Childs");
            Assert.AreEqual("mono", (se.Children [0] as SecurityElement).Attribute("Name"), "Name#1");
            Assert.AreEqual("novell", (se.Children [1] as SecurityElement).Attribute("Name"), "Name#2");
            // strangely it is still versioned as 'version="1"'.
            Assert.AreEqual("1", se.Attribute("version"), "Version");
#else
            Assert.IsNull(result, "DifferentName");
#endif
        }
Exemplo n.º 16
0
        public void StrongNameIdentityPermission_All()
        {
            StrongNamePublicKeyBlob      blob = new StrongNamePublicKeyBlob(ecma);
            StrongNameIdentityPermission snip = new StrongNameIdentityPermission(blob, "mono", new Version(1, 2, 3, 4));

            Assert.AreEqual("mono", snip.Name, "Name");
            Assert.AreEqual("00000000000000000400000000000000", snip.PublicKey.ToString(), "PublicKey");
            Assert.AreEqual("1.2.3.4", snip.Version.ToString(), "Version");

            SecurityElement se = snip.ToXml();

            Assert.AreEqual("mono", se.Attribute("Name"), "Xml-Name");
            Assert.AreEqual("00000000000000000400000000000000", se.Attribute("PublicKeyBlob"), "Xml-PublicKeyBlob");
            Assert.AreEqual("1.2.3.4", se.Attribute("AssemblyVersion"), "Xml-AssemblyVersion");

            StrongNameIdentityPermission copy = (StrongNameIdentityPermission)snip.Copy();

            Assert.AreEqual("mono", se.Attribute("Name"), "Copy-Name");
            Assert.AreEqual("00000000000000000400000000000000", se.Attribute("PublicKeyBlob"), "Copy-PublicKeyBlob");
            Assert.AreEqual("1.2.3.4", se.Attribute("AssemblyVersion"), "Copy-AssemblyVersion");
        }
Exemplo n.º 17
0
 public static void StrongNameIdentityPermissionCallMethods()
 {
     StrongNameIdentityPermission snip = new StrongNameIdentityPermission(new Permissions.PermissionState());
     StrongNameIdentityPermission snip2 = new StrongNameIdentityPermission(new Permissions.StrongNamePublicKeyBlob(new byte[1]), "test", new System.Version(1, 2));
     IPermission ip = snip.Copy();
     IPermission ip2 = snip.Intersect(ip);
     bool testbool = snip.IsSubsetOf(ip);
     ip2 = snip.Union(ip);
     SecurityElement se = new SecurityElement("");
     snip.FromXml(se);
     se = snip.ToXml();
 }
Exemplo n.º 18
0
	// ToXml creates an XML encoding of the permission and its current state; 
	//FromXml reconstructs a permission with the specified state from the XML encoding. 
	private bool ToFromXmlDemo()
	{

		bool returnValue = true;

		StrongNameIdentityPermission snIdPerm1, snIdPerm2;

		snIdPerm1 = new StrongNameIdentityPermission(blob, "MyCompany.MyDepartment.*", new Version("1.0.0.0"));
		snIdPerm2 = new StrongNameIdentityPermission(PermissionState.None);
		snIdPerm2.FromXml(snIdPerm1.ToXml());
		Console.WriteLine("Result of ToFromXml = " + snIdPerm2.ToString() + "\n");

		return returnValue;

	}