Ich versuche, über sein Bearer-Token in ASP.NET Core auf die Ansprüche eines Benutzers zuzugreifen, aber im Handler ist HttpContext.User.Identity.Name immer null, und die Claims-Auflistung ist es leer.
Das Token wird als Header wie folgt übergeben:
Autorisierung: Bearer eyJhbGci....< /p>
In Startup.Configure rufe ich UseAuthentication nach UseRouting und vor UseEndpoints auf.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseRouting();
app.UseAuthentication();
app.UseEndpoints(endpoints =>
{
endpoints.MapGet("/", async context =>
{
await context.Response.WriteAsync(context.User.Identity.Name ?? "null");
});
});
}
In Startup.ConfigureServices rufe ich AddAuthentication und AddJwtBearer auf. Ich habe eine Reihe von Optionen hinzugefügt, um zu versuchen, so viel Validierung wie möglich zu deaktivieren, da ich im Moment nur versuche, die Werte aus dem Token zu lesen, aber das hat nicht geholfen.
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options =>
{
options.TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters {
ValidateIssuer = false,
ValidateIssuerSigningKey = false,
ValidateAudience = false,
ValidateActor = false,
ValidateLifetime = false,
ValidateTokenReplay = false,
};
}
);
}
Mein Token ist ein Standard-Dummy-Token von https://jwt.io/#debugger-io und sieht nach der Dekodierung so aus:
{"alg":"HS256","typ":"JWT"}{"sub":"1234567890","name":"John Doe","iat":1516239022}
Was fehlt mir, damit das funktioniert?
Auf JWT-Ansprüche kann nicht über ASP.NET HttpContext zugegriffen werden ⇐ C#
-
- Similar Topics
- Replies
- Views
- Last post
-
-
ASP.NET-Problem mit Autorisierung und benutzerdefinierten Rollen über JWT-Token
by Anonymous » » in C# - 0 Replies
- 13 Views
-
Last post by Anonymous
-