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(); }
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); }