2016-06-28 13 views
16

うまくいけば簡単に解決できます。System.IdentityModel.Tokens.Jwtの更新により、IdentityServer3クライアントの変更が中断される

MicrosoftのSystem.IdentityModels.Tokens.Jwtパッケージは、昨日NuGetで4.0.2.206211351からv5.0に更新されました。これは残念なことに、いくつかの "標準" IdentityServer3コードで改変を引き起こしています。つまりコードサンプルから取得しているので、かなりの数の開発者がこの問題を次の日に見るかもしれないと想像しています。

オリジナルコード

v4.0.2.xxxxxxバージョンのパッケージを使用しています。私は

using System.IdentityModel.Tokens; 

名前空間にあります。 confgiurationラインを更新した後

を更新した後

public void Configuration(IAppBuilder app) 
    { 
     AntiForgeryConfig.UniqueClaimTypeIdentifier = "sub"; 

     JwtSecurityTokenHandler.InboundClaimTypeMap = new Dictionary<string, string>(); 

     app.UseCookieAuthentication(new CookieAuthenticationOptions 
     { 
      AuthenticationType = "Cookies" 
     }); 

     app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions 
     { ... }; 

は、設定方法のように始まる

JwtSecurityTokenHandler.InboundClaimTypeMap = new Dictionary<string, string>(); 

が問題を引き起こしています。

最初に、クラスが明らかにSystem.IdentityModel.Tokens.Jwt名前空間に移動していることは、これを解決することはそれ程難しくありません。

Object reference required for a non-static fieldJwtSecurityTokenHandler.InboundClaimTypeMapでエラーが発生しました。

ここに何か不足している別のライブラリ、またはStartup.Configuration()が呼び出される前に何か起こっていることがありますか? > V5定義によって破壊変更です -

v4が); -

答えて

18

あなたは医者に行くと、「私はこれを行うときには、常に痛い」と言う医師は「これをやって停止する」返信させていただきます。 v5が必要ですか?

これは、単純なインテリセンスの調査では、InboundClaimTypeMapからDefaultInboundClaimTypeMapに名前が変更されたと言われています。

途中でさらに大きな変化が見られるように準備してください。 OWINで

+0

感謝します。ああ、...まだv5の準備ができていません。これは無関係な話を始める前にNuGetパッケージの一般的なアップデートをしていたことです。私はしばらくの間、クリアされていないアップデートアラートで暮らす必要があります。 1つの意味で、私はそれが簡単な修正だとうれしいです。別のところでは、私は少し尋ねるのが嫌だと思う...しかし、それはソフトウェア開発だと思う:-) – user1820426

+0

最新のバージョン(5.XX)を使うと、 'System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler.DefaultInboundClaimTypeMap ' –

1

アクセストークンの検証がsystem.identitymodelのV5と互換性がありません - あなたはV4にダウングレードする必要がある - See issue here

関連する問題