Hoffentlich leicht zu lösen.
Das System.IdentityModels.Tokens.Jwt
-Paket von Microsoft wurde gestern auf NuGet von 4.0.2.206211351
zu v5.0
aktualisiert. Dies führt leider zu einer grundlegenden Änderung mit einigen "Standard" IdentityServer3
-Codes. d. h. aus ihren Codebeispielen entnommen. Ich denke, dass einige Entwickler dieses Problem in den nächsten Tagen sehen werden.
v4.0.2.xxxxxx-Version des Pakets verwenden. ich habe
using System.IdentityModel.Tokens;
im Namensraum.
dann in der Konfigurationsmethode beginnt als:
public void Configuration(IAppBuilder app)
{
AntiForgeryConfig.UniqueClaimTypeIdentifier = "sub";
JwtSecurityTokenHandler.InboundClaimTypeMap = new Dictionary<string, string>();
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = "Cookies"
});
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{ ... };
Nach dem Aktualisieren der Bestätigungszeile:
JwtSecurityTokenHandler.InboundClaimTypeMap = new Dictionary<string, string>();
Verursacht ein Problem.
Die erste Sache ist, dass die Klasse anscheinend in den System.IdentityModel.Tokens.Jwt
-Namespace verschoben wurde. Dies ist nicht so schlecht zu lösen.
Ich erhalte jedoch jetzt einen Object reference required for a non-static field
-Fehler in JwtSecurityTokenHandler.InboundClaimTypeMap
.
Fehlt mir hier etwas, eine andere Bibliothek, die benötigt wird, oder passiert etwas, bevor Startup.Configuration()
aufgerufen wird, in das eingegraben werden muss?
Wenn du zum Arzt gehst und sagst "es tut immer weh, wenn ich das mache" - der Arzt wird antworten "und dann aufhören";)
v4 -> v5 ist per definitionem eine entscheidende Änderung. Benötigen Sie v5?
Davon abgesehen, hätte eine einfache intelligente Untersuchung ergeben, dass sie InboundClaimTypeMap
in DefaultInboundClaimTypeMap
umbenannten.
Seien Sie auf weitere bahnbrechende Änderungen vorbereitet.
Die Validierung von Zugriffstokens in OWIN ist nicht kompatibel mit system.identitymodel v5 - Sie müssen auf v4 downgraden - Siehe Problem hier