Exemplo n.º 1
0
        //public List<ConditionAbstractType> Conditions = new List<ConditionAbstractType>();

        public static ConditionsType Load(XElement ConditionsTypeElement)
        {
            var ct = new ConditionsType();

            foreach (var a in ConditionsTypeElement.Attributes())
            {
                switch (a.Name.LocalName)
                {
                case "NotBefore": ct.NotBefore = (DateTime)a; break;

                case "NotOnOrAfter": ct.NotOnOrAfter = (DateTime)a;  break;
                }
            }

            /*
             * foreach (var e in ConditionsTypeElement.Elements())
             * {
             *  switch (e.Name.LocalName)
             *  {
             *      case "Condition": ct.Conditions.Add(ConditionType.Load(e));  break;
             *      case "AudienceRestriction": ct.Conditions.Add(AudienceRestrictionType.Load(e));break;
             *      case "OneTimeUse": ct.Conditions.Add(OneTimeUseType.Load(e));break;
             *      case "ProxyRestriction": ct.Conditions.Add(ProxyRestrictionType.Load(e));break;
             *  }
             * }
             */
            return(ct);
        }
Exemplo n.º 2
0
        public static AssertionType Load(XElement AssertionElement)
        {
            var at = new AssertionType();

            foreach (var a in AssertionElement.Attributes())
            {
                switch (a.Name.LocalName)
                {
                case "Id": at.ID = a.Value; break;

                case "Version": at.Version = a.Value; break;

                case "IssueInstant": at.IssueInstant = (DateTime)a; break;
                }
            }

            foreach (var e in AssertionElement.Elements())
            {
                switch (e.Name.LocalName)
                {
                case "Issuer": at.Issuer = IssuerType.Load(e); break;

                case "Signature":
                {
                    XmlDocument doc = new XmlDocument();
                    using (var rd = e.CreateReader())
                    {
                        doc.Load(rd);
                    }
                    at.Signature = new Signature();
                    at.Signature.LoadXml(doc.DocumentElement);

                    if (at.Signature.Id == null && e.Attribute("Id") != null)
                    {
                        at.Signature.Id = e.Attribute("Id").Value;
                    }
                }
                break;

                case "Subject": at.Subject = SubjectType.Load(e); break;

                case "Conditions": at.Conditions = ConditionsType.Load(e); break;

                //case "Advice": at.Advice = AdviceType.Load(e); break;
                case "AuthnStatement": at.Statements.Add(AuthnStatementType.Load(e)); break;

                case "AttributeStatement": at.Statements.Add(AttributeStatementType.Load(e)); break;

                //case "AuthzDecisionStatement": at.Statements.Add(AuthzDecisionStatementType.Load(e)); break;
                case "Statement": at.Statements.Add(StatementType.Load(e)); break;
                }
            }
            return(at);
        }