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); }
protected internal override void Read(string xml, bool validateXmlSignature = false) { base.Read(xml, validateXmlSignature); InResponseTo = XmlDocument.DocumentElement.Attributes[Schemas.Saml2Constants.Message.InResponseTo].GetValueOrNull <Saml2Id>(); Status = Saml2StatusCodeUtil.ToEnum(XmlDocument.DocumentElement[Schemas.Saml2Constants.Message.Status, Schemas.Saml2Constants.ProtocolNamespace.OriginalString][Schemas.Saml2Constants.Message.StatusCode, Schemas.Saml2Constants.ProtocolNamespace.OriginalString].Attributes[Schemas.Saml2Constants.Message.Value].GetValueOrNull <string>()); }
internal override void Read(string xml, bool validateXmlSignature = false) { base.Read(xml, validateXmlSignature); Status = Saml2StatusCodeUtil.ToEnum(XmlDocument.DocumentElement[Saml2Constants.Message.Status, Saml2Constants.ProtocolNamespace.OriginalString][Saml2Constants.Message.StatusCode, Saml2Constants.ProtocolNamespace.OriginalString].Attributes[Saml2Constants.Message.Value].GetValueOrNull()); DecryptMessage(); if (validateXmlSignature) { ValidateXmlSignature(); } }
protected override IEnumerable <XObject> GetXContent() { foreach (var item in base.GetXContent()) { yield return(item); } yield return(new XElement(Saml2Constants.ProtocolNamespaceX + Saml2Constants.Message.Status, new XElement(Saml2Constants.ProtocolNamespaceX + Saml2Constants.Message.StatusCode, new XAttribute(Saml2Constants.Message.Value, Saml2StatusCodeUtil.ToString(Status))))); }