Copy() public method

public Copy ( string name ) : NamedPermissionSet
name string
return NamedPermissionSet
コード例 #1
0
        //
        // Utility methods to construct the permission set objects from the well known XML and any permission
        // set extensions if necessary
        //

        private static NamedPermissionSet GetOrDeserializeExtendablePermissionSet(
            ref NamedPermissionSet permissionSet,
            string permissionSetXml)
        {
            Contract.Requires(!String.IsNullOrEmpty(permissionSetXml));
            return(permissionSet.Copy() as NamedPermissionSet);
        }
コード例 #2
0
        //
        // Utility methods to construct the permission set objects from the well known XML and any permission
        // set extensions if necessary
        //

        private static NamedPermissionSet GetOrDeserializeExtendablePermissionSet(ref NamedPermissionSet permissionSet,
                                                                                  string permissionSetXml
#if FEATURE_CAS_POLICY
                                                                                  , string extensionXml
#endif // FEATURE_CAS_POLICY
                                                                                  )
        {
            Contract.Requires(!String.IsNullOrEmpty(permissionSetXml));
#if FEATURE_CAS_POLICY
            Contract.Requires(!String.IsNullOrEmpty(extensionXml));
#endif // FEATURE_CAS_POLICY

            if (permissionSet == null)
            {
#if FEATURE_CAS_POLICY
                SecurityElement    securityElement           = SecurityElement.FromString(permissionSetXml);
                NamedPermissionSet deserializedPermissionSet = new NamedPermissionSet(securityElement);

                PermissionSet extensions = GetPermissionSetExtensions(extensionXml);
                deserializedPermissionSet.InplaceUnion(extensions);

                permissionSet = deserializedPermissionSet;
#endif // FEATURE_CAS_POLICY
            }

            return(permissionSet.Copy() as NamedPermissionSet);
        }
コード例 #3
0
 private static NamedPermissionSet GetOrDeserializePermissionSet(ref NamedPermissionSet permissionSet, string permissionSetXml)
 {
     if (permissionSet == null)
     {
         NamedPermissionSet namedPermissionSet = new NamedPermissionSet(SecurityElement.FromString(permissionSetXml));
         permissionSet = namedPermissionSet;
     }
     return(permissionSet.Copy() as NamedPermissionSet);
 }
コード例 #4
0
 private static NamedPermissionSet GetOrDeserializeExtendablePermissionSet(ref NamedPermissionSet permissionSet, string permissionSetXml, string extensionXml)
 {
     if (permissionSet == null)
     {
         NamedPermissionSet namedPermissionSet      = new NamedPermissionSet(SecurityElement.FromString(permissionSetXml));
         PermissionSet      permissionSetExtensions = BuiltInPermissionSets.GetPermissionSetExtensions(extensionXml);
         namedPermissionSet.InplaceUnion(permissionSetExtensions);
         permissionSet = namedPermissionSet;
     }
     return(permissionSet.Copy() as NamedPermissionSet);
 }
コード例 #5
0
        private static NamedPermissionSet GetOrDeserializePermissionSet(ref NamedPermissionSet permissionSet,
                                                                        string permissionSetXml)
        {
            Contract.Assert(!String.IsNullOrEmpty(permissionSetXml));

#if FEATURE_CAS_POLICY
            if (permissionSet == null)
            {
                SecurityElement    securityElement           = SecurityElement.FromString(permissionSetXml);
                NamedPermissionSet deserializedPermissionSet = new NamedPermissionSet(securityElement);

                permissionSet = deserializedPermissionSet;
            }
#endif // FEATURE_CAS_POLICY

            return(permissionSet.Copy() as NamedPermissionSet);
        }
コード例 #6
0
		public void FromXml_NoName ()
		{
			NamedPermissionSet nps = new NamedPermissionSet (name, PermissionState.None);
			SecurityElement se = nps.ToXml ();

			SecurityElement w = new SecurityElement (se.Tag);
			w.AddAttribute ("class", se.Attribute ("class"));
			w.AddAttribute ("version", "1");
			nps.FromXml (w);

			// having a null name can badly influence the rest of the class code
			Assert.IsNull (nps.Name, "Name");
			NamedPermissionSet copy = (NamedPermissionSet) nps.Copy ();
			Assert.IsNull (copy.Name, "Copy.Name");

			copy = nps.Copy ("name");
			Assert.AreEqual ("name", copy.Name, "Copy(Name).Name");

			se = nps.ToXml ();
			Assert.IsNull (se.Attribute ("Name"), "Name attribute");
#if NET_2_0
			Assert.AreEqual (0, nps.GetHashCode (), "GetHashCode");
			Assert.IsTrue (nps.Equals (nps), "Equals-self");
#endif
		}
コード例 #7
0
		public void Copy_Name_Empty ()
		{
			NamedPermissionSet nps = new NamedPermissionSet (name);
			NamedPermissionSet copy = (NamedPermissionSet)nps.Copy (String.Empty);
		}
コード例 #8
0
		public void Copy_Name_Null ()
		{
			NamedPermissionSet nps = new NamedPermissionSet (name);
			NamedPermissionSet copy = (NamedPermissionSet)nps.Copy (null);
		}
コード例 #9
0
		public void Copy_Name ()
		{
			NamedPermissionSet nps = new NamedPermissionSet (name);
			nps.Description = sentinel;
			nps.AddPermission (new SecurityPermission (SecurityPermissionFlag.Assertion));
			NamedPermissionSet copy = (NamedPermissionSet)nps.Copy ("Copy");
			Assert.AreEqual ("Copy", copy.Name, "Name");
			Assert.AreEqual (nps.Description, copy.Description, "Description");
			Assert.AreEqual (nps.Count, copy.Count, "Count");
		}
コード例 #10
0
        private static NamedPermissionSet GetOrDeserializePermissionSet(ref NamedPermissionSet permissionSet,
                                                                        string permissionSetXml)
        {
            Contract.Assert(!String.IsNullOrEmpty(permissionSetXml));

#if FEATURE_CAS_POLICY
            if (permissionSet == null)
            {
                SecurityElement securityElement = SecurityElement.FromString(permissionSetXml);
                NamedPermissionSet deserializedPermissionSet = new NamedPermissionSet(securityElement);
                
                permissionSet = deserializedPermissionSet;
            }
#endif // FEATURE_CAS_POLICY

            return permissionSet.Copy() as NamedPermissionSet;
        }
コード例 #11
0
        //
        // Utility methods to construct the permission set objects from the well known XML and any permission
        // set extensions if necessary
        //

        private static NamedPermissionSet GetOrDeserializeExtendablePermissionSet(ref NamedPermissionSet permissionSet,
                                                                                  string permissionSetXml
#if FEATURE_CAS_POLICY
                                                                                  ,string extensionXml
#endif // FEATURE_CAS_POLICY
                                                                                  )
        {
            Contract.Requires(!String.IsNullOrEmpty(permissionSetXml));
#if FEATURE_CAS_POLICY
            Contract.Requires(!String.IsNullOrEmpty(extensionXml));
#endif // FEATURE_CAS_POLICY

            if (permissionSet == null)
            {
#if FEATURE_CAS_POLICY
                SecurityElement securityElement = SecurityElement.FromString(permissionSetXml);
                NamedPermissionSet deserializedPermissionSet = new NamedPermissionSet(securityElement);

                PermissionSet extensions = GetPermissionSetExtensions(extensionXml);
                deserializedPermissionSet.InplaceUnion(extensions);

                permissionSet = deserializedPermissionSet;
#endif // FEATURE_CAS_POLICY
            }

            return permissionSet.Copy() as NamedPermissionSet;
        }
コード例 #12
0
 private static NamedPermissionSet GetOrDeserializePermissionSet(ref NamedPermissionSet permissionSet,
                                                                 string permissionSetXml)
 {
     Debug.Assert(!String.IsNullOrEmpty(permissionSetXml));
     return permissionSet.Copy() as NamedPermissionSet;
 }
コード例 #13
0
 public void AddNamedPermissionSet(NamedPermissionSet permSet)
 {
     if (permSet == null)
     {
         throw new ArgumentNullException("permSet");
     }
     this.CheckLoaded();
     this.LoadAllPermissionSets();
     lock (this)
     {
         IEnumerator enumerator = this.m_namedPermissionSets.GetEnumerator();
         while (enumerator.MoveNext())
         {
             if (((NamedPermissionSet) enumerator.Current).Name.Equals(permSet.Name))
             {
                 throw new ArgumentException(Environment.GetResourceString("Argument_DuplicateName"));
             }
         }
         NamedPermissionSet set = (NamedPermissionSet) permSet.Copy();
         set.IgnoreTypeLoadFailures = true;
         this.m_namedPermissionSets.Add(set);
     }
 }
コード例 #14
0
 private static NamedPermissionSet GetOrDeserializePermissionSet(ref NamedPermissionSet permissionSet,
                                                                 string permissionSetXml)
 {
     Debug.Assert(!String.IsNullOrEmpty(permissionSetXml));
     return(permissionSet.Copy() as NamedPermissionSet);
 }
コード例 #15
0
		public void Copy ()
		{
			NamedPermissionSet nps = new NamedPermissionSet (name);
			nps.Description = sentinel;
			nps.AddPermission (new SecurityPermission (SecurityPermissionFlag.Assertion));
			NamedPermissionSet copy = (NamedPermissionSet)nps.Copy ();
			AssertEquals ("Name", nps.Name, copy.Name);
			AssertEquals ("Description", nps.Description, copy.Description);
			AssertEquals ("Count", nps.Count, copy.Count);
		}
コード例 #16
0
		public void FromXml () 
		{
			NamedPermissionSet nps = new NamedPermissionSet (name, PermissionState.None);
			SecurityElement se = nps.ToXml ();
			Assert.IsNotNull (se, "ToXml()");

			NamedPermissionSet nps2 = (NamedPermissionSet) nps.Copy ();
			nps2.FromXml (se);
			Assert.AreEqual (name, nps2.Name, "FromXml-Copy.Name");
			// strangely it's empty when converted from XML (but null when created)
			Assert.AreEqual ("", nps2.Description, "FromXml-Copy.Description");
			Assert.IsTrue (!nps2.IsUnrestricted () , "FromXml-Copy.IsUnrestricted");

			se.AddAttribute ("Description", sentinel);
			nps2.FromXml (se);
			Assert.AreEqual (name, nps2.Name, "FromXml-Add1.Name");
			Assert.AreEqual (sentinel, nps2.Description, "FromXml-Add1.Description");
			Assert.IsTrue (!nps2.IsUnrestricted () , "FromXml-Add1.IsUnrestricted");

			se.AddAttribute ("Unrestricted", "true");
			nps2.FromXml (se);
			Assert.AreEqual (name, nps2.Name, "FromXml-Add2.Name");
			Assert.AreEqual (sentinel, nps2.Description, "FromXml-Add2.Description");
			Assert.IsTrue (nps2.IsUnrestricted () , "FromXml-Add2.IsUnrestricted");
		}
コード例 #17
0
		public void Equals () 
		{
			NamedPermissionSet psn = new NamedPermissionSet (name, PermissionState.None);
			NamedPermissionSet psu = new NamedPermissionSet (name, PermissionState.Unrestricted);
			Assert.IsTrue (!psn.Equals (psu), "psn!=psu");
			Assert.IsTrue (!psu.Equals (psn), "psu!=psn");
			NamedPermissionSet cpsn = (NamedPermissionSet) psn.Copy ();
			Assert.IsTrue (cpsn.Equals (psn), "cpsn==psn");
			Assert.IsTrue (psn.Equals (cpsn), "psn==cpsn");
			NamedPermissionSet cpsu = (NamedPermissionSet) psu.Copy ();
			Assert.IsTrue (cpsu.Equals (psu), "cpsu==psu");
			Assert.IsTrue (psu.Equals (cpsu), "psu==cpsu");
			cpsn.Description = sentinel;
			Assert.IsTrue (cpsn.Equals (psn), "cpsn+desc==psn");
			Assert.IsTrue (psn.Equals (cpsn), "psn==cpsn+desc");
			cpsn.Description = sentinel;
			Assert.IsTrue (cpsu.Equals (psu), "cpsu+desc==psu");
			Assert.IsTrue (psu.Equals (cpsu), "psu==cpsu+desc");
		}
コード例 #18
0
        //
        // Utility methods to construct the permission set objects from the well known XML and any permission
        // set extensions if necessary
        //

        private static NamedPermissionSet GetOrDeserializeExtendablePermissionSet(
            ref NamedPermissionSet permissionSet,
            string permissionSetXml)
        {
            Contract.Requires(!String.IsNullOrEmpty(permissionSetXml));
            return permissionSet.Copy() as NamedPermissionSet;
        }