To support dynamic configuration, we recommend implementing the ISAMLConfigurationResolver interface.
If you take a look at the ExampleServiceProvider's Global.asax, you'll find an ExampleServiceProviderConfigurationResolver. This example returns hard-coded configuration for demonstration purposes. In a production application, you would read the configuration from a custom database etc.
A SAMLConfiguration can include one LocalServiceProvider configuration and multiple PartnerIdentityProvider configurations.
To support multiple local service providers, you would have one SAMLConfiguration for each service provider.
The methods in ISAMLConfigurationResolver each take a configurationName parameter. This allows your implementation to return the corresponding configuration. So, for example, you would assign a configurationName to each local service provider.
Prior to calling any of the SAML API calls (eg SAMLServiceProvider.InitiateSSO, SAMLServiceProvider.ReceiveSSO), you specify which configuration should be used by setting the SAMLController.ConfigurationName property.
The Configuration Guide in the documentation folder has more information. This guide is also available at:https://www.componentspace.com/forums/9350/Configuration-Guide