Ejemplo n.º 1
0
        }// ValidateData

        internal override bool ApplyData()
        {
            PolicyStatementAttribute psa = new PolicyStatementAttribute();

            if (m_chkUseOnlyThisCG.Checked)
            {
                psa |= PolicyStatementAttribute.Exclusive;
            }
            if (m_chkOnlyUseThisPL.Checked)
            {
                psa |= PolicyStatementAttribute.LevelFinal;
            }

            PolicyStatement ps = m_cg.PolicyStatement;

            if (ps == null)
            {
                ps = new PolicyStatement(null);
            }
            ps.Attributes        = psa;
            m_cg.PolicyStatement = ps;
            m_cg.Name            = m_txtCGName.Text;
            m_cg.Description     = m_txtCGDes.Text;

            SecurityPolicyChanged();

            return(true);
        }// ApplyData
Ejemplo n.º 2
0
    // Construct a PolicyStatement with an Unrestricted permission set and
    // the LevelFinal attribute.
    private static PolicyStatement secondConstructorTest()
    {
        // Construct the permission set.
        //<Snippet3>
        PermissionSet permissions =
            new PermissionSet(PermissionState.Unrestricted);

        permissions.AddPermission(
            new SecurityPermission(SecurityPermissionFlag.Execution));
        permissions.AddPermission(
            new ZoneIdentityPermission(SecurityZone.MyComputer));

        PolicyStatementAttribute levelFinalAttribute =
            PolicyStatementAttribute.LevelFinal;

        // Create a new policy statement with the specified permission set.
        // The LevelFinal attribute is set to prevent the evaluation of lower
        // policy levels in a resolve operation.
        PolicyStatement policyStatement =
            new PolicyStatement(permissions, levelFinalAttribute);

        //</Snippet3>

        return(policyStatement);
    }
Ejemplo n.º 3
0
		public PolicyStatement (PermissionSet permSet, PolicyStatementAttribute attributes) 
		{
			if (permSet != null) {
				this.perms = permSet.Copy ();
				this.perms.SetReadOnly (true);
			}
			this.attrs = attributes;
		}
Ejemplo n.º 4
0
 // Token: 0x06002A02 RID: 10754 RVA: 0x0009C1C6 File Offset: 0x0009A3C6
 private static bool ValidProperties(PolicyStatementAttribute attributes)
 {
     if ((attributes & ~(PolicyStatementAttribute.Exclusive | PolicyStatementAttribute.LevelFinal)) == PolicyStatementAttribute.Nothing)
     {
         return(true);
     }
     throw new ArgumentException(Environment.GetResourceString("Argument_InvalidFlag"));
 }
Ejemplo n.º 5
0
		public void AttributeString ()
		{
			PolicyStatementAttribute psa = PolicyStatementAttribute.LevelFinal;
			PolicyStatement ps = new PolicyStatement (new PermissionSet (PermissionState.None));
			ps.Attributes = psa;
			MyCodeGroup cg = new MyCodeGroup(new AllMembershipCondition (), ps);
			Assert.AreEqual (psa.ToString(), cg.AttributeString, "AttributeString");
		}
 private static bool ValidProperties(PolicyStatementAttribute attributes)
 {
     if ((attributes & ~PolicyStatementAttribute.All) != PolicyStatementAttribute.Nothing)
     {
         throw new ArgumentException(Environment.GetResourceString("Argument_InvalidFlag"));
     }
     return(true);
 }
Ejemplo n.º 7
0
        internal void FromXml(SecurityDocument doc, int position, PolicyLevel level, bool allowInternalOnly)
        {
            if (doc == null)
            {
                throw new ArgumentNullException("doc");
            }
            if (!doc.GetTagForElement(position).Equals("PolicyStatement"))
            {
                throw new ArgumentException(string.Format((IFormatProvider)CultureInfo.CurrentCulture, Environment.GetResourceString("Argument_InvalidXMLElement"), (object)"PolicyStatement", (object)this.GetType().FullName));
            }
            this.m_attributes = PolicyStatementAttribute.Nothing;
            string attributeForElement = doc.GetAttributeForElement(position, "Attributes");

            if (attributeForElement != null)
            {
                this.m_attributes = (PolicyStatementAttribute)Enum.Parse(typeof(PolicyStatementAttribute), attributeForElement);
            }
            lock (this)
            {
                this.m_permSet = (PermissionSet)null;
                if (level != null)
                {
                    string local_3 = doc.GetAttributeForElement(position, "PermissionSetName");
                    if (local_3 != null)
                    {
                        this.m_permSet = (PermissionSet)level.GetNamedPermissionSetInternal(local_3);
                        if (this.m_permSet == null)
                        {
                            this.m_permSet = new PermissionSet(PermissionState.None);
                        }
                    }
                }
                if (this.m_permSet == null)
                {
                    ArrayList local_4 = doc.GetChildrenPositionForElement(position);
                    int       local_5 = -1;
                    for (int local_6 = 0; local_6 < local_4.Count; ++local_6)
                    {
                        if (doc.GetTagForElement((int)local_4[local_6]).Equals("PermissionSet"))
                        {
                            local_5 = (int)local_4[local_6];
                        }
                    }
                    if (local_5 == -1)
                    {
                        throw new ArgumentException(Environment.GetResourceString("Argument_InvalidXML"));
                    }
                    string local_7 = doc.GetAttributeForElement(local_5, "class");
                    this.m_permSet = local_7 == null || !local_7.Equals("NamedPermissionSet") && !local_7.Equals("System.Security.NamedPermissionSet") ? new PermissionSet(PermissionState.None) : (PermissionSet) new NamedPermissionSet("DefaultName", PermissionState.None);
                    this.m_permSet.FromXml(doc, local_5, allowInternalOnly);
                }
                if (this.m_permSet != null)
                {
                    return;
                }
                this.m_permSet = new PermissionSet(PermissionState.None);
            }
        }
Ejemplo n.º 8
0
 public PolicyStatement(PermissionSet perms, PolicyStatementAttribute attrs)
 {
     if (perms != null)
     {
         this.perms = perms.Copy();
         this.perms.SetReadOnly(true);
     }
     this.attrs = attrs;
 }
Ejemplo n.º 9
0
        internal void FromXml(SecurityElement et, PolicyLevel level, bool allowInternalOnly)
        {
            if (et == null)
            {
                throw new ArgumentNullException("et");
            }
            if (!et.Tag.Equals("PolicyStatement"))
            {
                throw new ArgumentException(string.Format((IFormatProvider)CultureInfo.CurrentCulture, Environment.GetResourceString("Argument_InvalidXMLElement"), (object)"PolicyStatement", (object)this.GetType().FullName));
            }
            this.m_attributes = PolicyStatementAttribute.Nothing;
            string str = et.Attribute("Attributes");

            if (str != null)
            {
                this.m_attributes = (PolicyStatementAttribute)Enum.Parse(typeof(PolicyStatementAttribute), str);
            }
            lock (this)
            {
                this.m_permSet = (PermissionSet)null;
                if (level != null)
                {
                    string local_3 = et.Attribute("PermissionSetName");
                    if (local_3 != null)
                    {
                        this.m_permSet = (PermissionSet)level.GetNamedPermissionSetInternal(local_3);
                        if (this.m_permSet == null)
                        {
                            this.m_permSet = new PermissionSet(PermissionState.None);
                        }
                    }
                }
                if (this.m_permSet == null)
                {
                    SecurityElement local_4 = et.SearchForChildByTag("PermissionSet");
                    if (local_4 == null)
                    {
                        throw new ArgumentException(Environment.GetResourceString("Argument_InvalidXML"));
                    }
                    string local_5 = local_4.Attribute("class");
                    this.m_permSet = local_5 == null || !local_5.Equals("NamedPermissionSet") && !local_5.Equals("System.Security.NamedPermissionSet") ? new PermissionSet(PermissionState.None) : (PermissionSet) new NamedPermissionSet("DefaultName", PermissionState.None);
                    try
                    {
                        this.m_permSet.FromXml(local_4, allowInternalOnly, true);
                    }
                    catch
                    {
                    }
                }
                if (this.m_permSet != null)
                {
                    return;
                }
                this.m_permSet = new PermissionSet(PermissionState.None);
            }
        }
Ejemplo n.º 10
0
        /// <summary>使用指定的 <see cref="T:System.Security.PermissionSet" /> 和特性初始化 <see cref="T:System.Security.Policy.PolicyStatement" /> 类的新实例。</summary>
        /// <param name="permSet">用于初始化新实例的 <see cref="T:System.Security.PermissionSet" />。</param>
        /// <param name="attributes">
        /// <see cref="T:System.Security.Policy.PolicyStatementAttribute" /> 值的按位组合。</param>
        public PolicyStatement(PermissionSet permSet, PolicyStatementAttribute attributes)
        {
            this.m_permSet = permSet != null?permSet.Copy() : new PermissionSet(false);

            if (!PolicyStatement.ValidProperties(attributes))
            {
                return;
            }
            this.m_attributes = attributes;
        }
 public PolicyStatement(System.Security.PermissionSet permSet, PolicyStatementAttribute attributes)
 {
     if (permSet == null)
     {
         this.m_permSet = new System.Security.PermissionSet(false);
     }
     else
     {
         this.m_permSet = permSet.Copy();
     }
     if (ValidProperties(attributes))
     {
         this.m_attributes = attributes;
     }
 }
Ejemplo n.º 12
0
 /// <include file='doc\PolicyStatement.uex' path='docs/doc[@for="PolicyStatement.PolicyStatement1"]/*' />
 public PolicyStatement(PermissionSet permSet, PolicyStatementAttribute attributes)
 {
     if (permSet == null)
     {
         m_permSet = new PermissionSet(false);
     }
     else
     {
         m_permSet = permSet.Copy();
     }
     if (ValidProperties(attributes))
     {
         m_attributes = attributes;
     }
 }
Ejemplo n.º 13
0
 public PolicyStatement( PermissionSet permSet, PolicyStatementAttribute attributes )
 {
     if (permSet == null)
     {
         m_permSet = new PermissionSet( false );
     }
     else
     {
         m_permSet = permSet.Copy();
     }
     if (ValidProperties( attributes ))
     {
         m_attributes = attributes;
     }
 }
 public PolicyStatement(System.Security.PermissionSet permSet, PolicyStatementAttribute attributes)
 {
     if (permSet == null)
     {
         this.m_permSet = new System.Security.PermissionSet(false);
     }
     else
     {
         this.m_permSet = permSet.Copy();
     }
     if (ValidProperties(attributes))
     {
         this.m_attributes = attributes;
     }
 }
Ejemplo n.º 15
0
 private PolicyStatement( PermissionSet permSet, PolicyStatementAttribute attributes, bool copy )
 {
     if (permSet != null)
     {
         if (copy)
             m_permSet = permSet.Copy();
         else
             m_permSet = permSet;
     }
     else
     {
         m_permSet = new PermissionSet( false );
     }
         
     m_attributes = attributes;
 }
Ejemplo n.º 16
0
        private void Resolve_Zone_Unrestricted_Attribute(SecurityZone zone, PolicyStatementAttribute attr)
        {
            IMembershipCondition mc = new ZoneMembershipCondition(zone);
            PolicyStatement      ps = new PolicyStatement(new PermissionSet(PermissionState.Unrestricted));

            ps.Attributes = attr;
            PolicyLevel pl = PolicyLevel.CreateAppDomainLevel();

            pl.RootCodeGroup = new UnionCodeGroup(mc, ps);

            Resolve_Zone(pl, SecurityZone.Internet, attr, (zone == SecurityZone.Internet), 0);
            Resolve_Zone(pl, SecurityZone.Intranet, attr, (zone == SecurityZone.Intranet), 0);
            Resolve_Zone(pl, SecurityZone.MyComputer, attr, (zone == SecurityZone.MyComputer), 0);
            Resolve_Zone(pl, SecurityZone.NoZone, attr, (zone == SecurityZone.NoZone), 0);
            Resolve_Zone(pl, SecurityZone.Trusted, attr, (zone == SecurityZone.Trusted), 0);
            Resolve_Zone(pl, SecurityZone.Untrusted, attr, (zone == SecurityZone.Untrusted), 0);
        }
 private PolicyStatement(System.Security.PermissionSet permSet, PolicyStatementAttribute attributes, bool copy)
 {
     if (permSet != null)
     {
         if (copy)
         {
             this.m_permSet = permSet.Copy();
         }
         else
         {
             this.m_permSet = permSet;
         }
     }
     else
     {
         this.m_permSet = new System.Security.PermissionSet(false);
     }
     this.m_attributes = attributes;
 }
Ejemplo n.º 18
0
        }// InsertPropSheetPageControls

        private void PutValuesinPage()
        {
            // Get info that we'll need from the node
            m_txtCGName.Text = m_cg.Name;
            m_txtCGDes.Text  = m_cg.Description;

            if (m_cg.PolicyStatement != null)
            {
                PolicyStatementAttribute psa = m_cg.PolicyStatement.Attributes;
                if ((psa & PolicyStatementAttribute.Exclusive) > 0)
                {
                    m_chkUseOnlyThisCG.Checked = true;
                }
                if ((psa & PolicyStatementAttribute.LevelFinal) > 0)
                {
                    m_chkOnlyUseThisPL.Checked = true;
                }
            }
        }// PutValuesinPage
 private PolicyStatement(System.Security.PermissionSet permSet, PolicyStatementAttribute attributes, bool copy)
 {
     if (permSet != null)
     {
         if (copy)
         {
             this.m_permSet = permSet.Copy();
         }
         else
         {
             this.m_permSet = permSet;
         }
     }
     else
     {
         this.m_permSet = new System.Security.PermissionSet(false);
     }
     this.m_attributes = attributes;
 }
Ejemplo n.º 20
0
        private PolicyStatement(PermissionSet permSet, PolicyStatementAttribute attributes, bool copy)
        {
            if (permSet != null)
            {
                if (copy)
                {
                    m_permSet = permSet.Copy();
                }
                else
                {
                    m_permSet = permSet;
                }
            }
            else
            {
                m_permSet = new PermissionSet(false);
            }

            m_attributes = attributes;
        }
Ejemplo n.º 21
0
        /// <summary>Reconstructs a security object with a given state from an XML encoding.</summary>
        /// <param name="et">The XML encoding to use to reconstruct the security object. </param>
        /// <param name="level">The <see cref="T:System.Security.Policy.PolicyLevel" /> context for lookup of <see cref="T:System.Security.NamedPermissionSet" /> values. </param>
        /// <exception cref="T:System.ArgumentNullException">The <paramref name="et" /> parameter is null. </exception>
        /// <exception cref="T:System.ArgumentException">The <paramref name="et" /> parameter is not a valid <see cref="T:System.Security.Policy.PolicyStatement" /> encoding. </exception>
        /// <PermissionSet>
        ///   <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="ControlEvidence" />
        /// </PermissionSet>
        public void FromXml(SecurityElement et, PolicyLevel level)
        {
            if (et == null)
            {
                throw new ArgumentNullException("et");
            }
            if (et.Tag != "PolicyStatement")
            {
                throw new ArgumentException(Locale.GetText("Invalid tag."));
            }
            string text = et.Attribute("Attributes");

            if (text != null)
            {
                this.attrs = (PolicyStatementAttribute)((int)Enum.Parse(typeof(PolicyStatementAttribute), text));
            }
            SecurityElement et2 = et.SearchForChildByTag("PermissionSet");

            this.PermissionSet.FromXml(et2);
        }
Ejemplo n.º 22
0
        private void Resolve_Zone(PolicyLevel level, SecurityZone z, PolicyStatementAttribute attr, bool unrestricted, int count)
        {
            string   prefix = z.ToString() + "-" + attr.ToString() + "-";
            Evidence e      = new Evidence();

            e.AddHost(new Zone(z));
            PolicyStatement result = level.Resolve(e);

            if (unrestricted)
            {
                Assert.AreEqual(attr, result.Attributes, prefix + "Attributes");
                switch (attr)
                {
                case PolicyStatementAttribute.Nothing:
                    Assert.AreEqual(String.Empty, result.AttributeString, prefix + "AttributeString");
                    break;

                case PolicyStatementAttribute.Exclusive:
                    Assert.AreEqual("Exclusive", result.AttributeString, prefix + "AttributeString");
                    break;

                case PolicyStatementAttribute.LevelFinal:
                    Assert.AreEqual("LevelFinal", result.AttributeString, prefix + "AttributeString");
                    break;

                case PolicyStatementAttribute.All:
                    Assert.AreEqual("Exclusive LevelFinal", result.AttributeString, prefix + "AttributeString");
                    break;
                }
            }
            else
            {
                Assert.AreEqual(PolicyStatementAttribute.Nothing, result.Attributes, prefix + "Attributes");
                Assert.AreEqual(String.Empty, result.AttributeString, prefix + "AttributeString");
            }
            Assert.AreEqual(unrestricted, result.PermissionSet.IsUnrestricted(), prefix + "IsUnrestricted");
            Assert.AreEqual(count, result.PermissionSet.Count, prefix + "Count");
        }
Ejemplo n.º 23
0
        public void FromXml(SecurityElement e, PolicyLevel level)
        {
            if (e == null)
            {
                throw new ArgumentNullException("e");
            }
            if (e.Tag != "PolicyStatement")
            {
                throw new ArgumentException(Locale.GetText("Invalid tag."));
            }


            string attributes = e.Attribute("Attributes");

            if (attributes != null)
            {
                attrs = (PolicyStatementAttribute)Enum.Parse(
                    typeof(PolicyStatementAttribute), attributes);
            }

            SecurityElement permissions = e.SearchForChildByTag("PermissionSet");

            PermissionSet.FromXml(permissions);
        }
Ejemplo n.º 24
0
 public PolicyStatement(PermissionSet permSet,
                        PolicyStatementAttribute attributes)
 {
     this.permSet    = permSet;
     this.attributes = attributes;
 }
        internal void FromXml(SecurityDocument doc, int position, PolicyLevel level, bool allowInternalOnly)
        {
            if (doc == null)
            {
                throw new ArgumentNullException("doc");
            }
            if (!doc.GetTagForElement(position).Equals("PolicyStatement"))
            {
                throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Argument_InvalidXMLElement"), new object[] { "PolicyStatement", base.GetType().FullName }));
            }
            this.m_attributes = PolicyStatementAttribute.Nothing;
            string attributeForElement = doc.GetAttributeForElement(position, "Attributes");

            if (attributeForElement != null)
            {
                this.m_attributes = (PolicyStatementAttribute)Enum.Parse(typeof(PolicyStatementAttribute), attributeForElement);
            }
            lock (this)
            {
                this.m_permSet = null;
                if (level != null)
                {
                    string name = doc.GetAttributeForElement(position, "PermissionSetName");
                    if (name != null)
                    {
                        this.m_permSet = level.GetNamedPermissionSetInternal(name);
                        if (this.m_permSet == null)
                        {
                            this.m_permSet = new System.Security.PermissionSet(PermissionState.None);
                        }
                    }
                }
                if (this.m_permSet == null)
                {
                    ArrayList childrenPositionForElement = doc.GetChildrenPositionForElement(position);
                    int       num = -1;
                    for (int i = 0; i < childrenPositionForElement.Count; i++)
                    {
                        if (doc.GetTagForElement((int)childrenPositionForElement[i]).Equals("PermissionSet"))
                        {
                            num = (int)childrenPositionForElement[i];
                        }
                    }
                    if (num == -1)
                    {
                        throw new ArgumentException(Environment.GetResourceString("Argument_InvalidXML"));
                    }
                    string str3 = doc.GetAttributeForElement(num, "class");
                    if ((str3 != null) && (str3.Equals("NamedPermissionSet") || str3.Equals("System.Security.NamedPermissionSet")))
                    {
                        this.m_permSet = new NamedPermissionSet("DefaultName", PermissionState.None);
                    }
                    else
                    {
                        this.m_permSet = new System.Security.PermissionSet(PermissionState.None);
                    }
                    this.m_permSet.FromXml(doc, num, allowInternalOnly);
                }
                if (this.m_permSet == null)
                {
                    this.m_permSet = new System.Security.PermissionSet(PermissionState.None);
                }
            }
        }
		private void Resolve_Zone_Unrestricted_Attribute (SecurityZone zone, PolicyStatementAttribute attr)
		{
			IMembershipCondition mc = new ZoneMembershipCondition (zone);
			PolicyStatement ps = new PolicyStatement (new PermissionSet (PermissionState.Unrestricted));
			ps.Attributes = attr;
			PolicyLevel pl = PolicyLevel.CreateAppDomainLevel ();
			pl.RootCodeGroup = new UnionCodeGroup (mc, ps);

			Resolve_Zone (pl, SecurityZone.Internet, attr, (zone == SecurityZone.Internet), 0);
			Resolve_Zone (pl, SecurityZone.Intranet, attr, (zone == SecurityZone.Intranet), 0);
			Resolve_Zone (pl, SecurityZone.MyComputer, attr, (zone == SecurityZone.MyComputer), 0);
			Resolve_Zone (pl, SecurityZone.NoZone, attr, (zone == SecurityZone.NoZone), 0);
			Resolve_Zone (pl, SecurityZone.Trusted, attr, (zone == SecurityZone.Trusted), 0);
			Resolve_Zone (pl, SecurityZone.Untrusted, attr, (zone == SecurityZone.Untrusted), 0);
		}
 public PolicyStatement(System.Security.PermissionSet permSet, PolicyStatementAttribute attributes)
 {
 }
        internal void FromXml(SecurityDocument doc, int position, PolicyLevel level, bool allowInternalOnly)
        {
            if (doc == null)
            {
                throw new ArgumentNullException("doc");
            }

            if (!doc.GetTagForElement(position).Equals("PolicyStatement"))
            {
                throw new ArgumentException(String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Argument_InvalidXMLElement"), "PolicyStatement", this.GetType().FullName));
            }

            m_attributes = (PolicyStatementAttribute)0;

            String strAttributes = doc.GetAttributeForElement(position, "Attributes");

            if (strAttributes != null)
            {
                m_attributes = (PolicyStatementAttribute)Enum.Parse(typeof(PolicyStatementAttribute), strAttributes);
            }

            lock (this)
            {
                m_permSet = null;

                if (level != null)
                {
                    String permSetName = doc.GetAttributeForElement(position, "PermissionSetName");

                    if (permSetName != null)
                    {
                        m_permSet = level.GetNamedPermissionSetInternal(permSetName);

                        if (m_permSet == null)
                        {
                            m_permSet = new PermissionSet(PermissionState.None);
                        }
                    }
                }


                if (m_permSet == null)
                {
                    // There is no provided level, it is not a named permission set, or
                    // the named permission set doesn't exist in the provided level,
                    // so just create the class through reflection and decode normally.

                    ArrayList childPositions        = doc.GetChildrenPositionForElement(position);
                    int       positionPermissionSet = -1;

                    for (int i = 0; i < childPositions.Count; ++i)
                    {
                        if (doc.GetTagForElement((int)childPositions[i]).Equals("PermissionSet"))
                        {
                            positionPermissionSet = (int)childPositions[i];
                        }
                    }

                    if (positionPermissionSet != -1)
                    {
                        String className = doc.GetAttributeForElement(positionPermissionSet, "class");

                        if (className != null && (className.Equals("NamedPermissionSet") ||
                                                  className.Equals("System.Security.NamedPermissionSet")))
                        {
                            m_permSet = new NamedPermissionSet("DefaultName", PermissionState.None);
                        }
                        else
                        {
                            m_permSet = new PermissionSet(PermissionState.None);
                        }

                        m_permSet.FromXml(doc, positionPermissionSet, allowInternalOnly);
                    }
                    else
                    {
                        throw new ArgumentException(Environment.GetResourceString("Argument_InvalidXML"));
                    }
                }

                if (m_permSet == null)
                {
                    m_permSet = new PermissionSet(PermissionState.None);
                }
            }
        }
		private void Resolve_Zone (PolicyLevel level, SecurityZone z, PolicyStatementAttribute attr, bool unrestricted, int count)
		{
			string prefix = z.ToString () + "-" + attr.ToString () + "-";
			Evidence e = new Evidence ();
			e.AddHost (new Zone (z));
			PolicyStatement result = level.Resolve (e);
			if (unrestricted) {
				Assert.AreEqual (attr, result.Attributes, prefix + "Attributes");
				switch (attr) {
					case PolicyStatementAttribute.Nothing:
						Assert.AreEqual (String.Empty, result.AttributeString, prefix + "AttributeString");
						break;
					case PolicyStatementAttribute.Exclusive:
						Assert.AreEqual ("Exclusive", result.AttributeString, prefix + "AttributeString");
						break;
					case PolicyStatementAttribute.LevelFinal:
						Assert.AreEqual ("LevelFinal", result.AttributeString, prefix + "AttributeString");
						break;
					case PolicyStatementAttribute.All:
						Assert.AreEqual ("Exclusive LevelFinal", result.AttributeString, prefix + "AttributeString");
						break;
				}
			}
			else {
				Assert.AreEqual (PolicyStatementAttribute.Nothing, result.Attributes, prefix + "Attributes");
				Assert.AreEqual (String.Empty, result.AttributeString, prefix + "AttributeString");
			}
			Assert.AreEqual (unrestricted, result.PermissionSet.IsUnrestricted (), prefix + "IsUnrestricted");
			Assert.AreEqual (count, result.PermissionSet.Count, prefix + "Count");
		}
        public PolicyStatement (System.Security.PermissionSet permSet, PolicyStatementAttribute attributes) {

          return default(PolicyStatement);
        }
 public PolicyStatement(System.Security.PermissionSet permSet, PolicyStatementAttribute attributes)
 {
 }
Ejemplo n.º 32
0
        [System.Security.SecurityCritical]  // auto-generated
        internal void FromXml(SecurityElement et, PolicyLevel level, bool allowInternalOnly)
        {
            if (et == null)
            {
                throw new ArgumentNullException(nameof(et));
            }

            if (!et.Tag.Equals("PolicyStatement"))
            {
                throw new ArgumentException(String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Argument_InvalidXMLElement"), nameof(PolicyStatement), this.GetType().FullName));
            }
            Contract.EndContractBlock();

            m_attributes = (PolicyStatementAttribute)0;

            String strAttributes = et.Attribute("Attributes");

            if (strAttributes != null)
            {
                m_attributes = (PolicyStatementAttribute)Enum.Parse(typeof(PolicyStatementAttribute), strAttributes);
            }

            lock (this)
            {
                m_permSet = null;

                if (level != null)
                {
                    String permSetName = et.Attribute("PermissionSetName");

                    if (permSetName != null)
                    {
                        m_permSet = level.GetNamedPermissionSetInternal(permSetName);

                        if (m_permSet == null)
                        {
                            m_permSet = new PermissionSet(PermissionState.None);
                        }
                    }
                }


                if (m_permSet == null)
                {
                    // There is no provided level, it is not a named permission set, or
                    // the named permission set doesn't exist in the provided level,
                    // so just create the class through reflection and decode normally.

                    SecurityElement e = et.SearchForChildByTag("PermissionSet");

                    if (e != null)
                    {
                        String className = e.Attribute("class");

                        if (className != null && (className.Equals("NamedPermissionSet") ||
                                                  className.Equals("System.Security.NamedPermissionSet")))
                        {
                            m_permSet = new NamedPermissionSet("DefaultName", PermissionState.None);
                        }
                        else
                        {
                            m_permSet = new PermissionSet(PermissionState.None);
                        }

                        try
                        {
                            m_permSet.FromXml(e, allowInternalOnly, true);
                        }
                        catch
                        {
                            // ignore any exceptions from the decode process.
                            // Note: we go ahead and use the permission set anyway.  This should be safe since
                            // the decode process should never give permission beyond what a proper decode would have
                            // given.
                        }
                    }
                    else
                    {
                        throw new ArgumentException(Environment.GetResourceString("Argument_InvalidXML"));
                    }
                }

                if (m_permSet == null)
                {
                    m_permSet = new PermissionSet(PermissionState.None);
                }
            }
        }
Ejemplo n.º 33
0
        [System.Security.SecurityCritical]  // auto-generated
        internal void FromXml( SecurityDocument doc, int position, PolicyLevel level, bool allowInternalOnly )
        {
            if (doc == null)
                throw new ArgumentNullException( "doc" );
            Contract.EndContractBlock();

            if (!doc.GetTagForElement( position ).Equals( "PolicyStatement" ))
                throw new ArgumentException( String.Format( CultureInfo.CurrentCulture, Environment.GetResourceString( "Argument_InvalidXMLElement" ),  "PolicyStatement", this.GetType().FullName ) );
        
            m_attributes = (PolicyStatementAttribute) 0;

            String strAttributes = doc.GetAttributeForElement( position, "Attributes" );

            if (strAttributes != null)
                m_attributes = (PolicyStatementAttribute)Enum.Parse( typeof( PolicyStatementAttribute ), strAttributes );

            lock (this)
            {
                m_permSet = null;

                if (level != null)
                {
                    String permSetName = doc.GetAttributeForElement( position, "PermissionSetName" );
    
                    if (permSetName != null)
                    {
                        m_permSet = level.GetNamedPermissionSetInternal( permSetName );

                        if (m_permSet == null)
                            m_permSet = new PermissionSet( PermissionState.None );
                    }
                }


                if (m_permSet == null)
                {
                    // There is no provided level, it is not a named permission set, or
                    // the named permission set doesn't exist in the provided level,
                    // so just create the class through reflection and decode normally.
        
                    ArrayList childPositions = doc.GetChildrenPositionForElement( position );
                    int positionPermissionSet = -1;

                    for (int i = 0; i < childPositions.Count; ++i)
                    {
                        if (doc.GetTagForElement( (int)childPositions[i] ).Equals( "PermissionSet" ))
                        {
                            positionPermissionSet = (int)childPositions[i];
                        }
                    }

                    if (positionPermissionSet != -1)
                    {
                        String className = doc.GetAttributeForElement( positionPermissionSet, "class" );

                        if (className != null && (className.Equals( "NamedPermissionSet" ) ||
                                                  className.Equals( "System.Security.NamedPermissionSet" )))
                            m_permSet = new NamedPermissionSet( "DefaultName", PermissionState.None );
                        else
                            m_permSet = new PermissionSet( PermissionState.None );
                
                        m_permSet.FromXml( doc, positionPermissionSet, allowInternalOnly );
                    }
                    else
                    {
                        throw new ArgumentException( Environment.GetResourceString( "Argument_InvalidXML" ) );
                    }
                }

                if (m_permSet == null) 
                    m_permSet = new PermissionSet( PermissionState.None );
            }    
        }
Ejemplo n.º 34
0
        // Implement the ISecurityPolicyEncodable interface.
        public void FromXml(SecurityElement et, PolicyLevel level)
        {
            if (et == null)
            {
                throw new ArgumentNullException("et");
            }
            if (et.Tag != "PolicyStatement")
            {
                throw new ArgumentException
                          (_("Security_PolicyName"));
            }
            if (et.Attribute("version") != "1")
            {
                throw new ArgumentException
                          (_("Security_PolicyVersion"));
            }
            String value = et.Attribute("Attributes");

            if (value != null)
            {
                attributes = (PolicyStatementAttribute)
                             Enum.Parse(typeof(PolicyStatementAttribute), value);
            }
            else
            {
                attributes = PolicyStatementAttribute.Nothing;
            }
            permSet = null;
            if (level != null)
            {
                String name = et.Attribute("PermissionSetName");
                if (name != null)
                {
                    permSet = level.GetNamedPermissionSet(value);
                    if (permSet == null)
                    {
                        permSet = new PermissionSet(PermissionState.None);
                    }
                }
            }
            if (permSet == null)
            {
                SecurityElement child;
                child = et.SearchForChildByTag("PermissionSet");
                if (child != null)
                {
                    String permClass;
                    permClass = child.Attribute("class");
                    if (permClass != null &&
                        permClass.IndexOf("NamedPermissionSet") != -1)
                    {
                        permSet = new NamedPermissionSet
                                      ("DefaultName", PermissionState.None);
                    }
                    else
                    {
                        permSet = new PermissionSet(PermissionState.None);
                    }
                    try
                    {
                        permSet.FromXml(child);
                    }
                    catch (Exception)
                    {
                        // Ignore errors during set loading.
                    }
                }
            }
            if (permSet == null)
            {
                permSet = new PermissionSet(PermissionState.None);
            }
        }
Ejemplo n.º 35
0
 public CodeGroupAttributeTableEntry( String label, PolicyStatementAttribute value, String description )
 {
     this.label = label;
     this.value = value;
     this.description = description;
     this.display = true;
     this.handler = null;
 }
 public PolicyStatement(System.Security.PermissionSet permSet, PolicyStatementAttribute attributes)
 {
     return(default(PolicyStatement));
 }
	// Implement the ISecurityPolicyEncodable interface.
	public void FromXml(SecurityElement et, PolicyLevel level)
			{
				if(et == null)
				{
					throw new ArgumentNullException("et");
				}
				if(et.Tag != "PolicyStatement")
				{
					throw new ArgumentException
						(_("Security_PolicyName"));
				}
				if(et.Attribute("version") != "1")
				{
					throw new ArgumentException
						(_("Security_PolicyVersion"));
				}
				String value = et.Attribute("Attributes");
				if(value != null)
				{
					attributes = (PolicyStatementAttribute)
						Enum.Parse(typeof(PolicyStatementAttribute), value);
				}
				else
				{
					attributes = PolicyStatementAttribute.Nothing;
				}
				permSet = null;
				if(level != null)
				{
					String name = et.Attribute("PermissionSetName");
					if(name != null)
					{
						permSet = level.GetNamedPermissionSet(value);
						if(permSet == null)
						{
							permSet = new PermissionSet(PermissionState.None);
						}
					}
				}
				if(permSet == null)
				{
					SecurityElement child;
					child = et.SearchForChildByTag("PermissionSet");
					if(child != null)
					{
						String permClass;
						permClass = child.Attribute("class");
						if(permClass != null &&
						   permClass.IndexOf("NamedPermissionSet") != -1)
						{
							permSet = new NamedPermissionSet
								("DefaultName", PermissionState.None);
						}
						else
						{
							permSet = new PermissionSet(PermissionState.None);
						}
						try
						{
							permSet.FromXml(child);
						}
						catch(Exception)
						{
							// Ignore errors during set loading.
						}
					}
				}
				if(permSet == null)
				{
					permSet = new PermissionSet(PermissionState.None);
				}
			}
 internal void FromXml(SecurityElement et, PolicyLevel level, bool allowInternalOnly)
 {
     if (et == null)
     {
         throw new ArgumentNullException("et");
     }
     if (!et.Tag.Equals("PolicyStatement"))
     {
         throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Argument_InvalidXMLElement"), new object[] { "PolicyStatement", base.GetType().FullName }));
     }
     this.m_attributes = PolicyStatementAttribute.Nothing;
     string str = et.Attribute("Attributes");
     if (str != null)
     {
         this.m_attributes = (PolicyStatementAttribute) Enum.Parse(typeof(PolicyStatementAttribute), str);
     }
     lock (this)
     {
         this.m_permSet = null;
         if (level != null)
         {
             string name = et.Attribute("PermissionSetName");
             if (name != null)
             {
                 this.m_permSet = level.GetNamedPermissionSetInternal(name);
                 if (this.m_permSet == null)
                 {
                     this.m_permSet = new System.Security.PermissionSet(PermissionState.None);
                 }
             }
         }
         if (this.m_permSet == null)
         {
             SecurityElement element = et.SearchForChildByTag("PermissionSet");
             if (element == null)
             {
                 throw new ArgumentException(Environment.GetResourceString("Argument_InvalidXML"));
             }
             string str3 = element.Attribute("class");
             if ((str3 != null) && (str3.Equals("NamedPermissionSet") || str3.Equals("System.Security.NamedPermissionSet")))
             {
                 this.m_permSet = new NamedPermissionSet("DefaultName", PermissionState.None);
             }
             else
             {
                 this.m_permSet = new System.Security.PermissionSet(PermissionState.None);
             }
             try
             {
                 this.m_permSet.FromXml(element, allowInternalOnly, true);
             }
             catch
             {
             }
         }
         if (this.m_permSet == null)
         {
             this.m_permSet = new System.Security.PermissionSet(PermissionState.None);
         }
     }
 }
Ejemplo n.º 39
0
 /// <summary>Initializes a new instance of the <see cref="T:System.Security.Policy.PolicyStatement" /> class with the specified <see cref="T:System.Security.PermissionSet" /> and attributes.</summary><param name="permSet">The <see cref="T:System.Security.PermissionSet" /> with which to initialize the new instance. </param><param name="attributes">A bitwise combination of the <see cref="T:System.Security.Policy.PolicyStatementAttribute" /> values. </param>
 public PolicyStatement(PermissionSet permSet, PolicyStatementAttribute attributes)
 {
     throw new NotImplementedException();
 }
	public PolicyStatement(PermissionSet permSet,
						   PolicyStatementAttribute attributes)
			{
				this.permSet = permSet;
				this.attributes = attributes;
			}
Ejemplo n.º 41
0
 public PolicyStatement(PermissionSet permSet, PolicyStatementAttribute attributes)
 {
 }
Ejemplo n.º 42
0
        [System.Security.SecurityCritical]  // auto-generated
        internal void FromXml( SecurityElement et, PolicyLevel level, bool allowInternalOnly )
        {
            if (et == null)
                throw new ArgumentNullException( "et" );

            if (!et.Tag.Equals( "PolicyStatement" ))
                throw new ArgumentException( String.Format( CultureInfo.CurrentCulture, Environment.GetResourceString( "Argument_InvalidXMLElement" ),  "PolicyStatement", this.GetType().FullName ) );
            Contract.EndContractBlock();
        
            m_attributes = (PolicyStatementAttribute) 0;

            String strAttributes = et.Attribute( "Attributes" );

            if (strAttributes != null)
                m_attributes = (PolicyStatementAttribute)Enum.Parse( typeof( PolicyStatementAttribute ), strAttributes );

            lock (this)
            {
                m_permSet = null;

                if (level != null)
                {
                    String permSetName = et.Attribute( "PermissionSetName" );
    
                    if (permSetName != null)
                    {
                        m_permSet = level.GetNamedPermissionSetInternal( permSetName );

                        if (m_permSet == null)
                            m_permSet = new PermissionSet( PermissionState.None );
                    }
                }


                if (m_permSet == null)
                {
                    // There is no provided level, it is not a named permission set, or
                    // the named permission set doesn't exist in the provided level,
                    // so just create the class through reflection and decode normally.
        
                    SecurityElement e = et.SearchForChildByTag( "PermissionSet" );

                    if (e != null)
                    {
                        String className = e.Attribute( "class" );

                        if (className != null && (className.Equals( "NamedPermissionSet" ) ||
                                                  className.Equals( "System.Security.NamedPermissionSet" )))
                            m_permSet = new NamedPermissionSet( "DefaultName", PermissionState.None );
                        else
                            m_permSet = new PermissionSet( PermissionState.None );
                
                        try
                        {
                            m_permSet.FromXml( e, allowInternalOnly, true );
                        }
                        catch
                        {
                            // ignore any exceptions from the decode process.
                            // Note: we go ahead and use the permission set anyway.  This should be safe since
                            // the decode process should never give permission beyond what a proper decode would have
                            // given.
                        }
                    }
                    else
                    {
                        throw new ArgumentException( Environment.GetResourceString( "Argument_InvalidXML" ) );
                    }
                }

                if (m_permSet == null) 
                    m_permSet = new PermissionSet( PermissionState.None );
            }    
        }
        internal void FromXml(SecurityElement et, PolicyLevel level, bool allowInternalOnly)
        {
            if (et == null)
            {
                throw new ArgumentNullException("et");
            }
            if (!et.Tag.Equals("PolicyStatement"))
            {
                throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Argument_InvalidXMLElement"), new object[] { "PolicyStatement", base.GetType().FullName }));
            }
            this.m_attributes = PolicyStatementAttribute.Nothing;
            string str = et.Attribute("Attributes");

            if (str != null)
            {
                this.m_attributes = (PolicyStatementAttribute)Enum.Parse(typeof(PolicyStatementAttribute), str);
            }
            lock (this)
            {
                this.m_permSet = null;
                if (level != null)
                {
                    string name = et.Attribute("PermissionSetName");
                    if (name != null)
                    {
                        this.m_permSet = level.GetNamedPermissionSetInternal(name);
                        if (this.m_permSet == null)
                        {
                            this.m_permSet = new System.Security.PermissionSet(PermissionState.None);
                        }
                    }
                }
                if (this.m_permSet == null)
                {
                    SecurityElement element = et.SearchForChildByTag("PermissionSet");
                    if (element == null)
                    {
                        throw new ArgumentException(Environment.GetResourceString("Argument_InvalidXML"));
                    }
                    string str3 = element.Attribute("class");
                    if ((str3 != null) && (str3.Equals("NamedPermissionSet") || str3.Equals("System.Security.NamedPermissionSet")))
                    {
                        this.m_permSet = new NamedPermissionSet("DefaultName", PermissionState.None);
                    }
                    else
                    {
                        this.m_permSet = new System.Security.PermissionSet(PermissionState.None);
                    }
                    try
                    {
                        this.m_permSet.FromXml(element, allowInternalOnly, true);
                    }
                    catch
                    {
                    }
                }
                if (this.m_permSet == null)
                {
                    this.m_permSet = new System.Security.PermissionSet(PermissionState.None);
                }
            }
        }
 private static bool ValidProperties(PolicyStatementAttribute attributes)
 {
     if ((attributes & ~PolicyStatementAttribute.All) != PolicyStatementAttribute.Nothing)
     {
         throw new ArgumentException(Environment.GetResourceString("Argument_InvalidFlag"));
     }
     return true;
 }
 internal PolicyStatement()
 {
     this.m_permSet    = null;
     this.m_attributes = PolicyStatementAttribute.Nothing;
 }
Ejemplo n.º 46
0
        /// <include file='doc\PolicyStatement.uex' path='docs/doc[@for="PolicyStatement.FromXml1"]/*' />
        public void FromXml(SecurityElement et, PolicyLevel level)
        {
            if (et == null)
            {
                throw new ArgumentNullException("et");
            }

            if (!et.Tag.Equals("PolicyStatement"))
            {
                throw new ArgumentException(String.Format(Environment.GetResourceString("Argument_InvalidXMLElement"), "PolicyStatement", this.GetType().FullName));
            }

            m_attributes = (PolicyStatementAttribute)0;

            String strAttributes = et.Attribute("Attributes");

            if (strAttributes != null)
            {
                m_attributes = (PolicyStatementAttribute)Enum.Parse(typeof(PolicyStatementAttribute), strAttributes);
            }

            lock (this)
            {
                m_permSet = null;

                if (level != null)
                {
                    String permSetName = et.Attribute("PermissionSetName");

                    if (permSetName != null)
                    {
                        m_permSet = level.GetNamedPermissionSetInternal(permSetName);

                        if (m_permSet == null)
                        {
                            m_permSet = new PermissionSet(PermissionState.None);
                        }
                    }
                }


                if (m_permSet == null)
                {
                    // There is no provided level, it is not a named permission set, or
                    // the named permission set doesn't exist in the provided level,
                    // so just create the class through reflection and decode normally.

                    SecurityElement e = et.SearchForChildByTag("PermissionSet");

                    if (e != null)
                    {
                        String className = e.Attribute("class");

                        if (className != null && (className.Equals("NamedPermissionSet") ||
                                                  className.Equals("System.Security.NamedPermissionSet")))
                        {
                            m_permSet = new NamedPermissionSet("DefaultName", PermissionState.None);
                        }
                        else
                        {
                            m_permSet = new PermissionSet(PermissionState.None);
                        }

                        try
                        {
                            // We play it conservative here and just say that we are loading policy
                            // anytime we have to decode a permission set.
                            bool fullyLoaded;
                            m_permSet.FromXml(e, true, out fullyLoaded);
                        }
                        catch (Exception)
                        {
                            // ignore any exceptions from the decode process.
                            // Note: we go ahead and use the permission set anyway.  This should be safe since
                            // the decode process should never give permission beyond what a proper decode would have
                            // given.
                        }
                    }
                    else
                    {
                        throw new ArgumentException(Environment.GetResourceString("Argument_InvalidXML"));
                    }
                }

                if (m_permSet == null)
                {
                    m_permSet = new PermissionSet(PermissionState.None);
                }
            }
        }
 internal void FromXml(SecurityDocument doc, int position, PolicyLevel level, bool allowInternalOnly)
 {
     if (doc == null)
     {
         throw new ArgumentNullException("doc");
     }
     if (!doc.GetTagForElement(position).Equals("PolicyStatement"))
     {
         throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Argument_InvalidXMLElement"), new object[] { "PolicyStatement", base.GetType().FullName }));
     }
     this.m_attributes = PolicyStatementAttribute.Nothing;
     string attributeForElement = doc.GetAttributeForElement(position, "Attributes");
     if (attributeForElement != null)
     {
         this.m_attributes = (PolicyStatementAttribute) Enum.Parse(typeof(PolicyStatementAttribute), attributeForElement);
     }
     lock (this)
     {
         this.m_permSet = null;
         if (level != null)
         {
             string name = doc.GetAttributeForElement(position, "PermissionSetName");
             if (name != null)
             {
                 this.m_permSet = level.GetNamedPermissionSetInternal(name);
                 if (this.m_permSet == null)
                 {
                     this.m_permSet = new System.Security.PermissionSet(PermissionState.None);
                 }
             }
         }
         if (this.m_permSet == null)
         {
             ArrayList childrenPositionForElement = doc.GetChildrenPositionForElement(position);
             int num = -1;
             for (int i = 0; i < childrenPositionForElement.Count; i++)
             {
                 if (doc.GetTagForElement((int) childrenPositionForElement[i]).Equals("PermissionSet"))
                 {
                     num = (int) childrenPositionForElement[i];
                 }
             }
             if (num == -1)
             {
                 throw new ArgumentException(Environment.GetResourceString("Argument_InvalidXML"));
             }
             string str3 = doc.GetAttributeForElement(num, "class");
             if ((str3 != null) && (str3.Equals("NamedPermissionSet") || str3.Equals("System.Security.NamedPermissionSet")))
             {
                 this.m_permSet = new NamedPermissionSet("DefaultName", PermissionState.None);
             }
             else
             {
                 this.m_permSet = new System.Security.PermissionSet(PermissionState.None);
             }
             this.m_permSet.FromXml(doc, num, allowInternalOnly);
         }
         if (this.m_permSet == null)
         {
             this.m_permSet = new System.Security.PermissionSet(PermissionState.None);
         }
     }
 }
Ejemplo n.º 48
0
		public void FromXml (SecurityElement et, PolicyLevel level)
		{
			if (et == null)
				throw new ArgumentNullException ("et");
			if (et.Tag != "PolicyStatement")
				throw new ArgumentException (Locale.GetText ("Invalid tag."));


			string attributes = et.Attribute ("Attributes");
			if (attributes != null) {
				attrs = (PolicyStatementAttribute) Enum.Parse (
					typeof (PolicyStatementAttribute), attributes);
			}

			SecurityElement permissions = et.SearchForChildByTag ("PermissionSet");
			PermissionSet.FromXml (permissions);
		}
Ejemplo n.º 49
0
 public PolicyStatement(PermissionSet permSet, PolicyStatementAttribute attributes) { }
 internal PolicyStatement()
 {
     this.m_permSet = null;
     this.m_attributes = PolicyStatementAttribute.Nothing;
 }