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); }
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(); }