Vous pouvez taper dans l'événement WIF de votre global.asax
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
FederatedAuthentication.FederationConfigurationCreated += FederatedAuthenticationOnFederationConfigurationCreated;
}
Dans ce gestionnaire vous pouvez adapter la configuration à l'exécution. Voici un code pour vous donner une idée. Le code de fin sera plus complexe.
private void FederatedAuthenticationOnFederationConfigurationCreated(object sender, FederationConfigurationCreatedEventArgs args)
{
var identityConfiguration = new IdentityConfiguration(loadConfig:false);
identityConfiguration.SecurityTokenHandlers.Clear();
//...
identityConfiguration.SecurityTokenHandlers.Add(new Saml2SecurityTokenHandler());
//...
var configuration = new FederationConfiguration(loadConfig: false)
{
CookieHandler = new ChunkedCookieHandler(),
//...
IdentityConfiguration = identityConfiguration
};
args.FederationConfiguration = configuration;
}
Si vous avez des doutes sur la valeur à donner à quel objet, vous pouvez toujours passer temporairement à la configuration et vérifier les valeurs d'exécution par le même événement. Ne sous-estimez pas la complexité et la richesse de la configuration fournie par WIF.
En général, vous voulez un mélange de "code config" et "web.config config" si le web.config est encore utilisé pour configurer certaines parties plus variables de la config et le code est utilisé pour les pièces les plus immuables. ..
Il a fallu beaucoup de temps pour arriver à la conclusion pour marquer votre réponse correcte. Ce n'était pas ce que je cherchais à l'époque où j'ai posé la question mais maintenant que je l'ai implémenté et passé par tous les rouages de ce plugin (aussi utilisé le plug-in VS2013 pour parcourir/déboguer le code du framework) ma mise en œuvre ressemble presque à ce que vous avez donné, votre réponse a beaucoup de sens maintenant et donc marquée bonne réponse. – Birey
Je n'aurais jamais commencé ici si ce n'est pour la réponse et le commentaire. C'était très utile. –