Estoy trabajando para actualizar mi aplicación .NET Core 2.2 MVC a 3.0. En esta aplicación, me autentico en un controlador utilizando un token JWT. El token contiene varios reclamos, pero cuando intento acceder a ellos a través de User.Claimsla lista resultante siempre está vacío.
En mi Startup.cstengo la configuración de autenticación de esta manera:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
// Code removed for clarity //
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = JwtManager.Issuer,
ValidAudience = "MyAudience",
IssuerSigningKey = "MySigningKey"
};
});
}
}
En Core 2.2 pude acceder a mis reclamos usando un código similar al siguiente:
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
public class MyController : Controller
{
[HttpGet("MyController/Action")]
public ActionResult<Aggregate[]> GetAction()
{
var username = User.FindFirstValue("MyUsernameClaim");
if (username == null)
{
return Forbid();
}
// Do Stuff //
}
}
Sin embargo, cuando migro el mismo código a Core 3.0, me autentico correctamente, pero no recibo ningún reclamo por el Userobjeto.

¿Me perdí un paso al convertir esto a 3.0? ¿ UserYa no se rellena automáticamente con información o algo así?
UseEndpointsal final del Configuremétodo y eso solucionó las cosas. Santa vaca, no puedo creer que algo tan simple como eso me haya costado una cantidad de tiempo embarazosa. Si quieres publicar eso como respuesta, lo aceptaré.
User.Identity.IsAuthenticatedparece falso. Si es así, entonces esto puede tener que ver con AuthenticationScheme.