Ich möchte den Rohwert des jwt Token von einem autorisierten Anforderung abzurufen. Ich weiß, dass es die Quelle für alle Ansprüche ist, aber ich habe einen Anwendungsfall, um den ursprünglichen Rohwert zu benötigen. Gibt es eine Möglichkeit, es wiederzufinden? Falls dies vom Authentifizierungstyp abhängt, verwenden wir OpenIdConnect (scheme = Oidc).raw jwt Tokenwert in asp.net Kern
Antwort
Was meinen Sie mit rohem? Das Token selbst ist roh, ist nur ein base64 des Tokens selbst. Wenn Sie die Token auf jwt.io setzen, können Sie immer entschlüsseln, es ist kein Geheimnis Zeug.
Wenn Sie glauben, dass Sie das rohe Token benötigen, weil Sie einige der Werte in sich benötigen, ist es das Beste, eine Kopie dieses Elements als zusätzliche Elemente zur Autorisierungsantwort hinzuzufügen.
Sie können dies versuchen:
// add JWT authentication (change to OIDC if you prefer)
app.UseJwtBearerAuthentication(new JwtBearerOptions
{
StoreToken = true
});
// then in your code...
var rawToken = await authenticationManager.GetTokenAsync("<name_of_signin_scheme>", "access_token");
Der Nachteil ist, dass das Token dann in einem Authentifizierungs-Cookie, wenn überhaupt in den Eigenschaften gespeichert werden.
Andernfalls können Sie die rohen Token mit der ReceivedToken Veranstaltung.
Die GetTokenAsync() -Methode kann im Microsoft.AspNetCore.Authentication, im Namensraum mit dem gleichen Namen gefunden werden.
Was ist der Typ des Objekts 'authenticationManager'? Und ist 'GetTokenAsync' eine Erweiterungsmethode? Ich schaue mir 'Microsoft.AspNetCore.Http.Authentication.AuthenticationManager' an und sehe diese Methode nicht. – gzak
Es ist eine Erweiterung Methode in der Tat, fand es nur in 'Microsoft.AspNetCore.Authentication.AuthenticationTokenExtensions'. Lass es mich versuchen, wenn das funktioniert, werde ich deine Antwort akzeptieren. – gzak
Welches Paket/Namespace muss ich hinzufügen, um auf diese Erweiterungsmethode zuzugreifen? Ich habe versucht, 'Microsoft.AspNet.Security' hinzufügen, aber ich habe noch nicht den' Microsoft.AspNetCore' Namensraum (geschweige denn eine ihrer Unternamensraum). – gzak
Es gibt eine kurze Blog-Post über genau dieses Problem: http://www.jerriepelser.com/blog/aspnetcore-jwt-saving-bearer-token-as-claim/
Sie entweder das Token in den AuthenticationProperties
(siehe auch die Antwort von @ycrumeyrolle) speichern können. oder Sie speichern das Token als einen Rückruf im Rückruf OnTokenValidated
. Dies ist in der JwtBearerOptions
eingerichtet. Bitte beachten Sie den verlinkten Artikel für alle Details.
- 1. User.Identity.IsAuthenticated Äquivalent in asp.net Kern
- 2. ASP.NET Kern DisplayAttribute Lokalisierung
- 3. Asp.net Kern Benutzerdefinierte Routing
- 4. JsonSerializerSettings und Asp.Net Kern
- 5. Asp.net Kern CloudConfigurationManager.GetSetting() ist null
- 6. Lazy Loading asp.net Kern angular2
- 7. Upload Dateigröße erhöhen in Asp.Net Kern
- 8. Parse Razor Zeichenfolge in ASP.NET Kern
- 9. Abrufen der RAW-Anforderung in ASP.NET MVC
- 10. JWT-Authentifizierung
- 11. ASP.Net Kern RC2 Migration csproj Referenzfehler
- 12. ASP.NET Kern RC1 zu 1.0.0 Migrationsfehler
- 13. asp.net Kern RC2 Bild zeigt nicht
- 14. asp.net Kern Windows-Authentifizierung auf lokale iis
- 15. ASP.NET Core-RC2 Jwt Token KID Fehler
- 16. ASP.NET MVC Read Raw JSON Postdaten
- 17. Zwei Arten von asp.net Kern-Web-Apps?
- 18. Code "Request.Headers.Range" funktioniert nicht auf asp.net Kern
- 19. Kestrel auf https mit asp.net Kern 1.0
- 20. In Dienst in Middleware in ASP.NET-Kern injizieren
- 21. C# JWT laden ES256 PEM-Datei in CngKey (jose-jwt)
- 22. Asp.Net Kern MVC6 Wie zunächst hinzufügen Rollen in Identity 3
- 23. wie Server.MapPath in asp.net Kern aus dem Inneren eines Helfer
- 24. Was ist die Kern-Framework-Version in ASP.NET?
- 25. ReSharper Markierung rot-Anweisung Klassenbibliothek in asp.net Kern verwenden
- 26. Wie Browser Cache in ASP.NET-Kern rc2 deaktivieren?
- 27. Checking Login Benutzer AuthorizePolicy in Razor Seite auf Asp.Net Kern
- 28. Microsoft.AspNet.Session nicht verfügbar in ASP.NET-Kern 1.0 rc1 update2
- 29. Asp.net Kern Einstellung Hintergrund in <form>
- 30. ASP.NET Kern: appsettings aus einem anderen Projekt in Lösung
Eigentlich, was ich tun muß, ist das Token aus dem eingehenden Anfrage des Benutzers zu extrahieren und sie in abgehenden Anfragen vom Server zu nachgelagerten Dienstleistungen übermitteln. – gzak