ASP Core 2.0 app.UseJwtBearerAuthentication 失败
ASP Core 2.0 app.UseJwtBearerAuthentication fails
我使用 dot net core 1.1 开发了一个网络应用程序。在我更新到 asp 核心 2.0 之前,它工作正常。然后在尝试使用该应用程序时,它报告此错误:
InvalidOperationException: No authenticationScheme was specified, and
there was no DefaultChallengeScheme found.
JwtBearerAuthentication 的身份验证配置,在 Startup.cs
的 Configure
方法中,以前如下所示:
app.UseJwtBearerAuthentication(new JwtBearerOptions
{
AutomaticAuthenticate = true,
AutomaticChallenge = true,
TokenValidationParameters = tokenValidationParameters
});
遇到这个错误后,我将其更新为这个错误:
app.UseJwtBearerAuthentication(new JwtBearerOptions
{
AutomaticAuthenticate = true,
AutomaticChallenge = true,
TokenValidationParameters = tokenValidationParameters,
AuthenticationScheme = JwtBearerDefaults.AuthenticationScheme
});
但错误消息仍然存在。我是在寻找错误的地方还是我必须添加额外的配置才能使身份验证系统正常工作?
我刚刚关注了这篇文章,一切都很顺利。
Migrating Authentication and Identity to ASP.NET Core 2.0
希望对其他人有所帮助。
TG.
您可以使用此代码代替您自己的代码来解决您的问题:
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme =
JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme =
JwtBearerDefaults.AuthenticationScheme;
options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
})
我使用 dot net core 1.1 开发了一个网络应用程序。在我更新到 asp 核心 2.0 之前,它工作正常。然后在尝试使用该应用程序时,它报告此错误:
InvalidOperationException: No authenticationScheme was specified, and there was no DefaultChallengeScheme found.
JwtBearerAuthentication 的身份验证配置,在 Startup.cs
的 Configure
方法中,以前如下所示:
app.UseJwtBearerAuthentication(new JwtBearerOptions
{
AutomaticAuthenticate = true,
AutomaticChallenge = true,
TokenValidationParameters = tokenValidationParameters
});
遇到这个错误后,我将其更新为这个错误:
app.UseJwtBearerAuthentication(new JwtBearerOptions
{
AutomaticAuthenticate = true,
AutomaticChallenge = true,
TokenValidationParameters = tokenValidationParameters,
AuthenticationScheme = JwtBearerDefaults.AuthenticationScheme
});
但错误消息仍然存在。我是在寻找错误的地方还是我必须添加额外的配置才能使身份验证系统正常工作?
我刚刚关注了这篇文章,一切都很顺利。
Migrating Authentication and Identity to ASP.NET Core 2.0
希望对其他人有所帮助。
TG.
您可以使用此代码代替您自己的代码来解决您的问题:
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme =
JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme =
JwtBearerDefaults.AuthenticationScheme;
options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
})