コード例 #1
0
        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);
        }
コード例 #2
0
        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>());
        }
コード例 #3
0
        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();
            }
        }
コード例 #4
0
        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)))));
        }