public string GetRequest(AuthRequestFormat format) { var xml = new XmlDocument(); using (StringWriter sw = new StringWriter()) { XmlWriterSettings xws = new XmlWriterSettings(); xws.OmitXmlDeclaration = true; using (XmlWriter xw = XmlWriter.Create(sw, xws)) { xw.WriteStartElement("samlp", "AuthnRequest", "urn:oasis:names:tc:SAML:2.0:protocol"); xw.WriteAttributeString("ID", id); xw.WriteAttributeString("Version", "2.0"); xw.WriteAttributeString("IssueInstant", issue_instant); xw.WriteAttributeString("ProtocolBinding", "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"); xw.WriteAttributeString("AssertionConsumerServiceURL", appSettings.assertionConsumerServiceUrl); xw.WriteStartElement("saml", "Issuer", "urn:oasis:names:tc:SAML:2.0:assertion"); xw.WriteString(appSettings.issuer); xw.WriteEndElement(); xw.WriteStartElement("samlp", "NameIDPolicy", "urn:oasis:names:tc:SAML:2.0:protocol"); xw.WriteAttributeString("Format", "urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified"); xw.WriteAttributeString("AllowCreate", "true"); xw.WriteEndElement(); xw.WriteStartElement("samlp", "RequestedAuthnContext", "urn:oasis:names:tc:SAML:2.0:protocol"); xw.WriteAttributeString("Comparison", "exact"); xw.WriteStartElement("saml", "AuthnContextClassRef", "urn:oasis:names:tc:SAML:2.0:assertion"); xw.WriteString("urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport"); xw.WriteEndElement(); xw.WriteEndElement(); // RequestedAuthnContext xw.WriteEndElement(); //xml.LoadXml(xw.ToString()); } //xml.LoadXml(xws.ToString()); //var certificate = new Certificate(); ////certificate.LoadCertificate(accountSettings.certificate); //certificate.LoadCertificate("server.p12", "pass", X509KeyStorageFlags.Exportable); //EncryptXmlWithCert(xml, "", certificate.cert); if (format == AuthRequestFormat.Base64) { byte[] toEncodeAsBytes = System.Text.ASCIIEncoding.ASCII.GetBytes(xws.ToString()); return(System.Convert.ToBase64String(toEncodeAsBytes)); } return(null); } }