2014-09-02 76 views
0

我有一個配置文件IdentityConfiguration信息,我用它來保護我的WCF服務。ConfigurationSeseserialisation具體類型

<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> 

我想反序列化上面一個IdentityConfiguration對象,但我無法弄清楚如何從ConfigurationSection去表示上述信息的具體類型。

我到目前爲止有:

無功配置= ConfigurationManager.OpenMappedExeConfiguration( 新ExeConfigurationFileMap(){ExeConfigFilename = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile},ConfigurationUserLevel.None);

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

// TODO:反序列化s到IdentityConfiguration

回答

0

如果你在你的app.config文件配置,配置部分正確的處理程序會自動使用,所以你不應該做任何事情除了呼叫IdentityConfiguration.LoadConfiguration()這應該返回您正在尋找的對象。

更多信息在:評論後System.IdentityModel.Configuration.IdentityConfiguration.LoadConfiguration

編輯:

如果手動與SystemIdentityModelSection對象時,您可以使用包含在此對象的IdentityConfigurationElements通過調用IdentityConfiguration.LoadHandlerConfiguration()加載一個IdentityConfiguration。就在這個方法

更多信息:System.IdentityModel.Configuration.IdentityConfiguration.LoadHandlerConfiguration

+0

我也許應該已經在我的問題提到了這一點,這是沒有對我們有好處,我們主要是配置代碼,這意味着在app.config完全被忽略。 http://msdn.microsoft.com/en-us/library/hh205277(v=vs.110).aspx – MrEdmundo 2014-09-02 14:35:08

+0

已更新,以顯示您應該使用哪些方法 - 您提供哪個元素將是一個有趣的問題,「(除非有總是隻有一個?) – toadflakz 2014-09-02 14:46:34