// public static SamlSecurityToken CreateSamlSecurityToken(byte[] certificate, string password, params Claim[] claims) // { // const string acsUrl = "http://blueprintsys.com"; // var assertion = new SamlAssertion(new SamlNameIdentifier(DefaultIssuer)); // var conditions = new Saml2Conditions // { // NotBefore = DateTime.UtcNow, // NotOnOrAfter = DateTime.MaxValue // }; // conditions.AudienceRestrictions.Add(new Saml2AudienceRestriction(new Uri(acsUrl, UriKind.RelativeOrAbsolute))); // assertion.Conditions = conditions; // var subject = new Saml2Subject(); // subject.SubjectConfirmations.Add(new Saml2SubjectConfirmation(Bearer)); // assertion.Subject = subject; // var statement = new Saml2AttributeStatement(); // foreach (var claim in claims) // { // statement.Attributes.Add(new Saml2Attribute(claim.Type, claim.Value)); // assertion.Statements.Add(statement); // } // var clientSigningCredentials = new X509SigningCredentials( // new X509Certificate2(certificate, password, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.Exportable)); // assertion.SigningCredentials = clientSigningCredentials; // return new Saml2SecurityToken(assertion); // } public static string Serialize(Saml2SecurityToken token) { var handler = new Saml2SecurityTokenHandler(); var sw = I18NHelper.CreateStringWriterInvariant(); using (var textWriter = new XmlTextWriter(sw)) { handler.WriteToken(textWriter, token); return(sw.ToString()); } }