Auf JWT-Ansprüche kann nicht über ASP.NET HttpContext zugegriffen werdenC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Auf JWT-Ansprüche kann nicht über ASP.NET HttpContext zugegriffen werden

Post by Anonymous »

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?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post