private string CreateSAMLResponse(string userName,LogoutRequest logoutRequest) { SLOSamlResponse SAMLResponse = new SLOSamlResponse(logoutRequest); using (StringWriter sw = new StringWriter()) { XmlWriterSettings xws = new XmlWriterSettings(); xws.OmitXmlDeclaration = true; using (XmlWriter xw = XmlWriter.Create(sw, xws)) { xw.WriteStartElement("samlp", "LogoutResponse", "urn:oasis:names:tc:SAML:2.0:protocol"); xw.WriteAttributeString("ID", SAMLResponse.ID); xw.WriteAttributeString("Version", SAMLResponse.Version); xw.WriteAttributeString("IssueInstant", SAMLResponse.IssueInstant); xw.WriteAttributeString("InResponseTo", SAMLResponse.InResponseTo); xw.WriteStartElement("saml", "Issuer", "urn:oasis:names:tc:SAML:2.0:assertion"); xw.WriteString(SAMLResponse.Issuer); xw.WriteEndElement(); xw.WriteStartElement("samlp", "Status", "urn:oasis:names:tc:SAML:2.0:protocol"); xw.WriteStartElement("samlp", "StatusCode", "urn:oasis:names:tc:SAML:2.0:protocol"); xw.WriteAttributeString("Value", SAMLResponse.status); xw.WriteEndElement(); xw.WriteEndElement(); xw.WriteEndElement(); } XmlDocument xmldoc = new XmlDocument(); xmldoc.LoadXml(sw.ToString()); X509Certificate2 xcert = new X509Certificate2(HttpRuntime.AppDomainAppPath + "\\" + "idp.pfx", "password"); AppendSignatureToXMLDocument(ref xmldoc, "", xcert); byte[] toEncodeAsBytes = System.Text.ASCIIEncoding.ASCII.GetBytes(xmldoc.OuterXml.ToString()); return System.Convert.ToBase64String(toEncodeAsBytes); } return null; }
private string CreateSAMLResponse(string userName, LogoutRequest logoutRequest) { SLOSamlResponse SAMLResponse = new SLOSamlResponse(logoutRequest); using (StringWriter sw = new StringWriter()) { XmlWriterSettings xws = new XmlWriterSettings(); xws.OmitXmlDeclaration = true; using (XmlWriter xw = XmlWriter.Create(sw, xws)) { xw.WriteStartElement("samlp", "LogoutResponse", "urn:oasis:names:tc:SAML:2.0:protocol"); xw.WriteAttributeString("ID", SAMLResponse.ID); xw.WriteAttributeString("Version", SAMLResponse.Version); xw.WriteAttributeString("IssueInstant", SAMLResponse.IssueInstant); xw.WriteAttributeString("InResponseTo", SAMLResponse.InResponseTo); xw.WriteStartElement("saml", "Issuer", "urn:oasis:names:tc:SAML:2.0:assertion"); xw.WriteString(SAMLResponse.Issuer); xw.WriteEndElement(); xw.WriteStartElement("samlp", "Status", "urn:oasis:names:tc:SAML:2.0:protocol"); xw.WriteStartElement("samlp", "StatusCode", "urn:oasis:names:tc:SAML:2.0:protocol"); xw.WriteAttributeString("Value", SAMLResponse.status); xw.WriteEndElement(); xw.WriteEndElement(); xw.WriteEndElement(); } XmlDocument xmldoc = new XmlDocument(); xmldoc.LoadXml(sw.ToString()); X509Certificate2 xcert = new X509Certificate2(HttpRuntime.AppDomainAppPath + "\\" + "idp.pfx", "password"); AppendSignatureToXMLDocument(ref xmldoc, "", xcert); byte[] toEncodeAsBytes = System.Text.ASCIIEncoding.ASCII.GetBytes(xmldoc.OuterXml.ToString()); return(System.Convert.ToBase64String(toEncodeAsBytes)); } return(null); }