Пример #1
0
        static void Main(string[] args)
        {
            Uri metadataUrl = null;

            if (args.Length < 1 || !Uri.TryCreate(args[0], UriKind.Absolute, out metadataUrl))
            {
                Console.WriteLine("No metadata provided");
                return;
            }

            var client   = new HttpClient();
            var metadata = client.GetStringAsync(metadataUrl).Result;

            var configSuggestion = new ConfigurationSuggestion();

            var xml = new XmlDocument();

            xml.PreserveWhitespace = true;
            xml.LoadXml(metadata);

            var meta = new SAMLSilly.Saml20MetadataDocument(xml);

            configSuggestion.SigningDetails = GetSigningInfo(meta.Entity.Signature);


            var sp = meta.Entity.Items.OfType <SpSsoDescriptor>().SingleOrDefault();

            if (sp != null)
            {
                configSuggestion.Sp = GetSpSuggestions(sp);
            }

            var idp = meta.Entity.Items.OfType <IdpSsoDescriptor>().SingleOrDefault();

            if (idp != null)
            {
                configSuggestion.Idp = GetIdpSuggestions(idp);
            }

            Console.WriteLine("The recommend configuration for entityId: {0}", meta.EntityId);
            WriteSigningInfo(configSuggestion.SigningDetails);

            if (configSuggestion.HasSpSupport())
            {
                WriteSsoInfo(configSuggestion.Sp);
            }

            Console.WriteLine("---------------------------------------------");

            if (configSuggestion.HasIdpSupport())
            {
                WriteSsoInfo(configSuggestion.Idp);
            }



            Console.Read();
        }
Пример #2
0
        public SAMLMetadataResult(Saml2Configuration config)
        {
            var metadata = new SAMLSilly.Saml20MetadataDocument().Load(config);

            metadata.Sign = true;
            StatusCode    = (int)HttpStatusCode.OK;

            ContentType = Saml20Constants.MetadataMimetype;
#if DEBUG
            ContentType = "text/xml";
#endif
            Content = metadata.ToXml(Encoding.UTF8, config.ServiceProvider.SigningCertificate, config.SigningAlgorithm);
        }