2014-09-02 3 views
0

J'ai un fichier de configuration avec IdentityConfiguration informations que j'utilise pour sécuriser mes services WCF, par ex.Configuration Désérialisation de la section au type de béton

<system.identityModel> 
    <identityConfiguration> 
     <securityTokenHandlers> 
     <securityTokenHandlerConfiguration> 
      <issuerNameRegistry type="System.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
      <trustedIssuers> 
       <add thumbprint="4459.....5E4" name="adfs" /> 
       <add thumbprint="85BBD0....94A4C7" name="identityServer" /> 
      </trustedIssuers> 
      </issuerNameRegistry> 
     </securityTokenHandlerConfiguration> 
     </securityTokenHandlers> 
     <audienceUris> 
     <add value="https://Iamauri/services"/> 
     </audienceUris> 
    </identityConfiguration> 
    </system.identityModel> 

Je voudrais désérialiser ci-dessus pour un objet IdentityConfiguration mais je ne peux pas comprendre comment passer d'un ConfigurationSection représentant les informations ci-dessus à un type de béton.

Ce que j'ai jusqu'à présent:

var config = ConfigurationManager.OpenMappedExeConfiguration ( nouvelle ExeConfigurationFileMap() {} ExeConfigFilename = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile, ConfigurationUserLevel.None);

var s = (SystemIdentityModelSection) config.GetSection ("system.identityModel");

// TODO: Deserialize s à IdentityConfiguration

Répondre

0

Si vous avez cette configuration dans votre fichier app.config, le gestionnaire correct pour la section de configuration sera utilisée automatiquement de sorte que vous ne devriez pas avoir à faire quoi que ce soit Au-delà de l'appel IdentityConfiguration.LoadConfiguration() qui devrait retourner l'objet que vous recherchez.

Plus d'infos sur: System.IdentityModel.Configuration.IdentityConfiguration.LoadConfiguration

Modifier après commentaire:

Si vous travaillez manuellement avec l'objet SystemIdentityModelSection, vous pouvez utiliser le IdentityConfigurationElements contenu dans cet objet pour charger un IdentityConfiguration en appelant IdentityConfiguration.LoadHandlerConfiguration().

Plus d'informations sur cette méthode à: System.IdentityModel.Configuration.IdentityConfiguration.LoadHandlerConfiguration

+0

Je devrais probablement avoir mentionné dans ma question, qui est pas bon pour nous, nous le code en grande partie la configuration qui signifie que le app.config est complètement ignoré. http://msdn.microsoft.com/en-us/library/hh205277(v=vs.110).aspx – MrEdmundo

+0

Mise à jour pour montrer quelles méthodes vous devriez utiliser - quel élément vous fournirez sera une question intéressante tho '(sauf s'il y a est toujours juste un?) – toadflakz

Questions connexes