示例#1
0
        protected void UploadButton_Click(object sender, EventArgs e)
        {
            try
            {
                // Upload the SAML metadata.
                EntityDescriptor entityDescriptor = LoadMetadata();

                if (entityDescriptor == null)
                {
                    return;
                }

                // Import the SAML metadata and update the SAML configuration.
                MetadataImporter.Import(entityDescriptor, SAMLController.Configuration, null);

                // Save the SAML configuration.
                string samlConfigFileName = Server.MapPath("~/App_Data/saml.config");
                SAMLConfigurationFile.Save(SAMLController.Configuration, samlConfigFileName);

                // Show the results.
                importSuccessful = true;
                messages.Add(string.Format("The updated SAML configuration has been successfully saved to {0}.", samlConfigFileName));
                ShowResults();
            }

            catch (Exception exception)
            {
                messages.Add("An error occurred importing the SAML metadata.");
                messages.Add(exception.ToString());
                ShowResults();
            }
        }
示例#2
0
        private static SAMLConfiguration LoadSAMLConfiguration()
        {
            Console.Write("SAML configuration file to export [saml.config]: ");
            string fileName = Console.ReadLine();

            if (string.IsNullOrEmpty(fileName))
            {
                fileName = "saml.config";
            }

            if (!File.Exists(fileName))
            {
                throw new ArgumentException(string.Format("The configuration file {0} doesn't exist.", fileName));
            }

            SAMLConfigurations samlConfigurations = SAMLConfigurationFile.Load(fileName);

            if (samlConfigurations.Configurations.Count == 1)
            {
                return(samlConfigurations.Configurations[0]);
            }

            Console.Write("SAML configuration ID [None]: ");
            string configurationID = Console.ReadLine();

            return(samlConfigurations.GetConfiguration(configurationID));
        }
示例#3
0
        static void Main(string[] args)
        {
            try
            {
                ParseArguments(args);

                Console.Error.WriteLine("Validating {0}.", fileName);
                SAMLConfigurationFile.Validate(fileName);
                Console.Error.WriteLine("The SAML configuration was successfully validated.");
            }

            catch (SAMLSchemaValidationException exception)
            {
                Console.Error.WriteLine(exception.Message);

                foreach (XmlSchemaException error in exception.Errors)
                {
                    Console.Error.WriteLine("Line {0}, Column {1}: {2}", error.LineNumber, error.LinePosition, error.Message);
                }

                foreach (XmlSchemaException warning in exception.Warnings)
                {
                    Console.Error.WriteLine("Line {0}, Column {1}: {2}", warning.LineNumber, warning.LinePosition, warning.Message);
                }
            }

            catch (Exception exception)
            {
                Console.Error.WriteLine(exception.ToString());

                if (exception is ArgumentException)
                {
                    ShowUsage();
                }
            }
        }