private static string CreateSamlResponseXml(Microsoft.IdentityModel.Tokens.Saml2.Saml2SecurityTokenHandler tokenHandler, Microsoft.IdentityModel.Tokens.Saml2.Saml2SecurityToken token) { var buffer = new StringBuilder(); using (var stringWriter = new StringWriter(buffer)) using (var xmlWriter = XmlWriter.Create(stringWriter, new XmlWriterSettings())) { xmlWriter.WriteStartElement("Response", "urn:oasis:names:tc:SAML:2.0:protocol"); xmlWriter.WriteAttributeString("IssueInstant", DateTime.UtcNow.ToString("s")); xmlWriter.WriteAttributeString("ID", "_" + Guid.NewGuid()); xmlWriter.WriteAttributeString("Version", "2.0"); xmlWriter.WriteStartElement("Status"); xmlWriter.WriteStartElement("StatusCode"); xmlWriter.WriteAttributeString("Value", "urn:oasis:names:tc:SAML:2.0:status:Success"); xmlWriter.WriteEndElement(); xmlWriter.WriteEndElement(); tokenHandler.WriteToken(xmlWriter, token); xmlWriter.WriteEndElement(); } return(buffer.ToString()); }
private string CreateSamlResponse() { var claims = CreateClaims(); var tokenHandler = new Microsoft.IdentityModel.Tokens.Saml2.Saml2SecurityTokenHandler();; var token = CreateToken(claims, tokenHandler); return(CreateSamlResponseXml(tokenHandler, token)); }
private static Microsoft.IdentityModel.Tokens.Saml2.Saml2SecurityToken CreateToken(IEnumerable <Claim> claims, Microsoft.IdentityModel.Tokens.Saml2.Saml2SecurityTokenHandler tokenHandler) { var descriptor = CreateTokenDescriptor(claims); var token = tokenHandler.CreateToken(descriptor) as Microsoft.IdentityModel.Tokens.Saml2.Saml2SecurityToken; AddAuthenticationStatement(token); AddConfirmationData(token); return(token); }