public static string ToXmlString(this RequestAbstractType request)
        {
            string        result     = string.Empty;
            XmlSerializer serializer = new XmlSerializer(request.GetType());

            using (StringWriter stringWriter = new StringWriter())
            {
                XmlWriterSettings settings = new XmlWriterSettings()
                {
                    OmitXmlDeclaration = true,
                    Indent             = true,
                    Encoding           = Encoding.UTF8
                };

                using (XmlWriter writer = XmlWriter.Create(stringWriter, settings))
                {
                    XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
                    namespaces.Add("saml2p", SamlNamespaceHelper.SAML_PROTOCOL_NAMESPACE);
                    namespaces.Add("saml", SamlNamespaceHelper.SAML_ASSERTION_NAMESPACE);
                    serializer.Serialize(writer, request, namespaces);
                    result = stringWriter.ToString();
                }
            }
            return(result);
        }
Exemple #2
0
        private string CompressRequest(RequestAbstractType request)
        {
            string xmlRequest = request.ToXmlString();

            using (MemoryStream compressedStream = new MemoryStream())
                using (MemoryStream uncompressedStream = new MemoryStream(Encoding.UTF8.GetBytes(xmlRequest)))
                {
                    using (var compressorStream = new DeflateStream(compressedStream, CompressionMode.Compress, true))
                    {
                        uncompressedStream.CopyTo(compressorStream);
                    }
                    return(Convert.ToBase64String(compressedStream.ToArray()));
                }
        }