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