.NET 4.0およびWIF 3.5(1.0?)で作成されたアプリケーションがあります。私はアプリを.NET 4.5にアップグレードしたので、WIF 4.5を使用するように変換しています。私はすべてのコード変更を行い、設定の設定で戦っています。私の現在のジレンマは、<claimTypeRequired>要素です。 this documentationによれば、<identityConfiguration>の子でなければなりませんが、私は私の設定は、このWindows Identity Foundation 4.5構成
<system.identityModel>
<identityConfiguration>
<claimTypeRequired>
...
</claimTypeRequired>
のように見えるように変更したときに、私はちょうどコメントするなら、私は、実行時
Parser Error Message: Unrecognized element 'claimTypeRequired'.
で次のエラーを取得します<claimTypeRequired>ブロック私はそのエラーを過ぎてしまいましたが、私は別の問題を提示しています。私たちは、次のような構成
<securityTokenHandlerConfiguration>
<maximumClockSkew value="1" />
</securityTokenHandlerConfiguration>
でもmaximumClockSkewを言及していない以前の参照設定マニュアルを経由して、既存のアプリケーションに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...
だから、そうです。
これは、マイクロソフトが実際に私たちにこのようなものを使用させたくないようなものです。
それは素晴らしいです。 System.IdentityModel.Services.Serialization.ConfigurationConstantsにはまだ定数がありますが、それを表す内部クラスはまだ存在します(System.IdentityModel.Services.Serialization.ClaimTypeRequiredElement)。本当に重要ではありませんが、これはMaximumClockSkewよりも懸念事項ではありませんでした。 –
あなたはCraig Wの下でオプションを試すことができます。それはそれを構成可能にし、ハードコーディングなし –