コード例 #1
0
ファイル: SamlUtilities.cs プロジェクト: ogolikhin/blueprint
        // 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());
            }
        }