我们有一个最初使用 .NET 4.0 和 WIF 3.5(1.0?)构建的应用程序。我正在将其转换为使用 WIF 4.5,因为我们已将应用程序升级到 .NET 4.5。我已经完成了所有代码更改,并且一直在与配置设置作斗争。我目前的困境在于 <claimTypeRequired> 元素。根据这个文档,它应该是 <identityConfiguration> 的孩子,但是当我修改我的配置看起来像这样
<system.identityModel>
<identityConfiguration>
<claimTypeRequired>
...
</claimTypeRequired>
我在运行时收到以下错误
Parser Error Message: Unrecognized element 'claimTypeRequired'.
如果我只是注释掉 <claimTypeRequired> 块,我会克服该错误,但随后会遇到另一个问题。我们通过以下配置修改了现有应用程序中的 maximumClockSkew
<securityTokenHandlerConfiguration>
<maximumClockSkew value="1" />
</securityTokenHandlerConfiguration>
前面引用的配置文档甚至没有提到 maximumClockSkew。我想我会试着把它留在里面看看会发生什么。发生的事情是
Parser Error Message: Property 'maximumClockSkew' is not a ConfigurationElement.
但是当我使用 JustDecompile 查看 SecurityTokenHandlerConfigurationElement 类时,我可以看到以下属性:
[ConfigurationProperty("maximumClockSkew", IsRequired=false, DefaultValue="00:05:00")]
[IdentityModelTimeSpanValidator(MinValueString="00:00:00")]
[TypeConverter(typeof(TimeSpanOrInfiniteConverter))]
public TimeSpan MaximumClockSkew...
所以它似乎期待它在那里。
这几乎就像微软实际上并不希望我们使用这些东西。