我有一个包含IdentityConfiguration
信息的配置文件,我用它来保护我的WCF服务,例如。
<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
转换为具体类型。
到目前为止我所拥有的:
var config = ConfigurationManager.OpenMappedExeConfiguration( new ExeConfigurationFileMap(){ExeConfigFilename = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile},ConfigurationUserLevel.None);
var s =(SystemIdentityModelSection)config.GetSection(“system.identityModel”);
// TODO:将s反序列化为IdentityConfiguration
答案 0 :(得分:0)
如果你的app.config文件中有这样的配置,那么配置部分的正确处理程序将被自动使用,所以除了调用IdentityConfiguration.LoadConfiguration()
之外你不应该做任何事情,它应该返回你正在寻找的对象对
更多信息:System.IdentityModel.Configuration.IdentityConfiguration.LoadConfiguration
评论后修改:
如果您手动使用SystemIdentityModelSection
对象,则可以使用此对象中包含的IdentityConfigurationElements
通过调用IdentityConfiguration
来加载IdentityConfiguration.LoadHandlerConfiguration()
。
有关此方法的更多信息,请访问:System.IdentityModel.Configuration.IdentityConfiguration.LoadHandlerConfiguration