gpt4 book ai didi

authentication - NET Core 2.0中缺少IServiceCollection的扩展方法AddJwtBearerAuthentication()

转载 作者:行者123 更新时间:2023-12-04 13:57:02 25 4
gpt4 key购买 nike

我已使用https://blogs.msdn.microsoft.com/webdev/2017/08/14/announcing-asp-net-core-2-0/中的说明将项目从Core 1.1更新为Core 2.0
(将目标框架更新为.NET Core 2.0,并使用元包Microsoft.AspNetCore.All)。我也将所有可能的nuget软件包也更新为最新版本。

在.NET Core 1.1中,我通过以下方式添加了JWT承载身份验证:

app.UseJwtBearerAuthentication(); // from Startup.Configure()

按照 http://www.talkingdotnet.com/whats-new-in-asp-net-core-2-0/ for Core 2.0的新方法是调用:
services.AddJwtBearerAuthentication(); // from Startup.ConfigureServices()

但是不存在方法 AddJwtBearerAuthentication()。已安装软件包Microsoft.AspNetCore.Authentication.JwtBearer 2.0.0。

新的空Core 2.0项目(带有JwtBearer程序包)也没有针对IServiceCollection的扩展方法AddJwtBearerAuthentication()。

旧方法 app.UseJwtBearerAuthentication()根本无法编译:
Error   CS0619  'JwtBearerAppBuilderExtensions.UseJwtBearerAuthentication(IApplicationBuilder, JwtBearerOptions)' is obsolete: 'See https://go.microsoft.com/fwlink/?linkid=845470'

请帮忙。

最佳答案

在ConfigureServices中,使用以下代码来配置JWTBearer身份验证:

    public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(o =>
{
o.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
o.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(o =>
{
o.Authority = "https://localhost:54302";
o.Audience = "your-api-id";
o.RequireHttpsMetadata = false;
});

services.AddMvc();
}

并在 Configure之前的 UseMvc()中添加 UseAuthentication():
app.UseAuthentication();

app.UseStaticFiles();

app.UseMvc();

有关详细示例,请参见: https://github.com/aspnet/Security/blob/dev/samples/JwtBearerSample/Startup.cs#L51

关于authentication - NET Core 2.0中缺少IServiceCollection的扩展方法AddJwtBearerAuthentication(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45712067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com