12

私はおそらく最初に尋ねるわけではありませんが、今はどれを使うべきですか?私が理解しているように、それはWCF用の非常に小さなSystem.IdentityModelから始まりました。次に、Microsoft .IdentityModelクラスが登場し、さらに多くの機能が追加されました。これは、http://social.technet.microsoft.com/wiki/contents/articles/1898.aspx#v3q10のような状況です。

しかし、4.5では、 System.IdentityModelにMicrosoft.IdentityModelのほとんどすべてのクラスが含まれていることがわかります(ただし、リファクタリングが行われているようで、web.configの構成は少し異なります)。 現在、MicrosoftはJSONWebトークンハンドラーをナゲットとしてプレリリースしています。これはMicrosoft.IdentityModelとSystem.IdentityModelに依存します。(JWTSecurityTokenHandlerはMicrosoft.IdentityModel.Tokens.JWTにあり、System.IdentityModel.Tokens.SecurityTokenHandlerから派生しています)。

これはかなり混乱しています。誰が私がどちらを使うべきか知っていますか?

4

2 に答える 2

11

WIF 1.0リリースは、Microsoftから「WindowsIdentity Foundation」をダウンロードしたときに取得するもので、.NET 3.5を対象としています(.NET 4.0と互換性がありました)。これは帯域外リリースであったため、すべてのタイプは非コア名前空間(Microsoft .IdentityModelなど)および非コアアセンブリに存在する必要がありました。

現在のWIF4.5リリース(私が正しく理解していれば、バージョン番号が急上昇しました)は、コアの.NET4.5フレームワークに直接統合されています。最も極端な例として、IClaimsPrincipalインターフェイスは、すべての.NETIPrincipal実装が派生するClaimsPrincipal基本クラスに置き換えられました。これはmscorlib.dllに直接あります。したがって、System.IdentityModelなどの名前空間。

プレリリースされたJWTハンドラー(nuget)は、もちろん、帯域外リリースです。それがコアの.NETvNextになってもまったく驚かないでしょう(JWT標準がそれまでに完成していると仮定します)が、それまでは、フレームワークの命名ガイドラインでは、JWTSecurityTokenHandlerなどがMicrosoft.IdentityModelに存在する必要があります。

私はあなたの混乱を理解することができます。今のところ、心配するのは.NET 4.5だけで、プロジェクトを最初から始めることができるという事実に助けられています。:)

于 2013-01-05T04:48:14.537 に答える