Пример #1
0
        protected virtual IEnumerable <XObject> GetXContent()
        {
            yield return(new XAttribute(Saml2Constants.ProtocolNamespaceNameX, Saml2Constants.ProtocolNamespace.OriginalString));

            yield return(new XAttribute(Saml2Constants.AssertionNamespaceNameX, Saml2Constants.AssertionNamespace.OriginalString));

            yield return(new XAttribute(Saml2Constants.Message.Id, Id));

            yield return(new XAttribute(Saml2Constants.Message.Version, Version));

            yield return(new XAttribute(Saml2Constants.Message.IssueInstant, IssueInstant.ToString("o", CultureInfo.InvariantCulture)));

            if (!string.IsNullOrWhiteSpace(Consent))
            {
                yield return(new XAttribute(Saml2Constants.Message.Consent, Consent));
            }

            if (Destination != null)
            {
                yield return(new XAttribute(Saml2Constants.Message.Destination, Destination));
            }

            if (Issuer != null)
            {
                yield return(new XElement(Saml2Constants.AssertionNamespaceX + Saml2Constants.Message.Issuer, Issuer.OriginalString));
            }

            if (Extensions != null)
            {
                yield return(Extensions.ToXElement());
            }
        }
 public string ToXML()
 {
     return(String.Format(GetAssertionXML(), new string[] {
         AssertionConsumerServiceURL, AttributeConsumingServiceIndex.ToString(),
         Destination, ForceAuthn.ToString().ToLower(), ID, IssueInstant.ToString("yyyy-MM-ddTHH:mm:ss.fffK"), ProviderName, Issuer
     }));
 }
        public override XmlDocument ToXml()
        {
            XmlDocument                    = new XmlDocument();
            XmlDocument.XmlResolver        = null;
            XmlDocument.PreserveWhitespace = true;
            using (XmlWriter xmlWriter = XmlDocument.CreateNavigator().AppendChild())
            {
                xmlWriter.WriteStartElement(elementName, Saml2Constants.ProtocolNamespace.OriginalString);
                xmlWriter.WriteAttributeString(Saml2Constants.Message.IssueInstant, IssueInstant.ToString("o", CultureInfo.InvariantCulture));
                xmlWriter.WriteAttributeString(Saml2Constants.Message.Id, Id.Value);
                xmlWriter.WriteAttributeString(Saml2Constants.Message.Version, Version);

                xmlWriter.WriteStartElement(Saml2Constants.Message.Status);
                xmlWriter.WriteStartElement(Saml2Constants.Message.StatusCode);
                xmlWriter.WriteAttributeString(Saml2Constants.Message.Value, Saml2StatusCodeUtil.ToString(Status));
                xmlWriter.WriteEndElement();
                xmlWriter.WriteEndElement();

                Saml2SecurityTokenHandler.WriteToken(xmlWriter, Saml2SecurityToken);

                xmlWriter.WriteEndElement();
            }

            return(XmlDocument);
        }
Пример #4
0
        public virtual void WriteXml(XmlDictionaryWriter writer,
                                     SamlSerializer samlSerializer,
                                     SecurityTokenSerializer keyInfoTokenSerializer)
        {
            if (writer == null)
            {
                throw new ArgumentNullException("writer");
            }

            if (Issuer == null || Issuer.Length == 0)
            {
                throw new SecurityTokenException("Issuer must not be null or empty.");
            }
            if (Statements.Count == 0)
            {
                throw new SecurityTokenException("At least one assertion statement is required.");
            }

            if (samlSerializer == null)
            {
                throw new ArgumentNullException("samlSerializer");
            }
            CultureInfo invariant = CultureInfo.InvariantCulture;

            writer.WriteStartElement("saml", "Assertion", SamlConstants.Namespace);
            writer.WriteAttributeString("MajorVersion", MajorVersion.ToString(invariant));
            writer.WriteAttributeString("MinorVersion", MinorVersion.ToString(invariant));
            writer.WriteAttributeString("AssertionID", AssertionId);
            writer.WriteAttributeString("Issuer", Issuer);
            writer.WriteAttributeString("IssueInstant", IssueInstant.ToString(SamlConstants.DateFormat, invariant));

            try
            {
                if (Conditions != null)
                {
                    Conditions.WriteXml(writer, samlSerializer, keyInfoTokenSerializer);
                }
                if (Advice != null)
                {
                    Advice.WriteXml(writer, samlSerializer, keyInfoTokenSerializer);
                }
                foreach (SamlStatement statement in Statements)
                {
                    statement.WriteXml(writer, samlSerializer, keyInfoTokenSerializer);
                }
            }
            catch (NotImplementedException)
            {
                throw;
            }
            catch (Exception ex) // bad catch, eh?
            {
                throw new InvalidOperationException("There is an error on writing assertion statements.", ex);
            }
            writer.WriteEndElement();
        }