Hy vọng rằng một cách dễ dàng để giải quyết.Cập nhật của System.IdentityModel.Tokens.Jwt gây ra sự thay đổi đột phá trong IdentityServer3 Client
Gói System.IdentityModels.Tokens.Jwt
của Microsoft đã được cập nhật ngày hôm qua trên NuGet từ 4.0.2.206211351
đến v5.0
. Rất tiếc, điều này gây ra thay đổi đột phá với một số mã "chuẩn" IdentityServer3
. tức là lấy từ mẫu mã của họ vì vậy tôi tưởng tượng một vài nhà phát triển có thể thấy vấn đề này trong những ngày tới.
Mã gốc
sử dụng phiên bản v4.0.2.xxxxxx của gói. Tôi có
using System.IdentityModel.Tokens;
trong không gian tên.
sau đó trong cấu hình phương pháp bắt đầu như:
public void Configuration(IAppBuilder app)
{
AntiForgeryConfig.UniqueClaimTypeIdentifier = "sub";
JwtSecurityTokenHandler.InboundClaimTypeMap = new Dictionary<string, string>();
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = "Cookies"
});
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{ ... };
Sau khi cập nhật
Sau khi cập nhật dòng confgiuration:
JwtSecurityTokenHandler.InboundClaimTypeMap = new Dictionary<string, string>();
là gây ra sự cố.
Điều đầu tiên là lớp, dường như đã chuyển vào không gian tên System.IdentityModel.Tokens.Jwt
, điều này không quá khó giải quyết.
Tuy nhiên, hiện tôi nhận được lỗi Object reference required for a non-static field
trên JwtSecurityTokenHandler.InboundClaimTypeMap
.
Tôi có thiếu gì đó ở đây không, một thư viện khác được yêu cầu hoặc có điều gì đó xảy ra trước khi số Startup.Configuration()
được gọi là cần đào sâu vào?
Rất cám ơn. Ah, ... không có chúng tôi chưa sẵn sàng cho v5, đây là tôi đang cập nhật các gói NuGet chung trước khi bắt đầu một câu chuyện không liên quan. Tôi sẽ phải sống với những Update Alerts đó không bị xóa trong một thời gian. Theo một nghĩa nào đó, tôi rất vui vì đó là một sửa chữa dễ dàng; trong một tôi cảm thấy một chút daft cho yêu cầu ... Nhưng, tôi cho rằng đó là phát triển phần mềm trong một nutshell :-) – user1820426
Sử dụng phiên bản mới nhất (5.XX) nó bây giờ là 'System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler.DefaultInboundClaimTypeMap ' –