相关疑难解决方法(0)

IDX10501:签名验证失败。无法匹配键

请帮助我了解来自 ASP netcore 应用程序和 netcore Kestrel 托管应用程序的 JWT 令牌验证之间的区别。

有两个应用程序使用如下源代码验证令牌:

public static IServiceCollection AddJwtToken(this IServiceCollection services, OAuthConfig config)
{
    services.AddMvc();
    services.AddAuthorization();

    Logger.DebugFormat("AddJwtBearer authority:{0} audience:{1}", config.GetAuthority(), config.Resource);

    services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
        .AddJwtBearer(options => new JwtBearerOptions
        {
            Authority = config.GetAuthority(),
            Audience = config.Resource,
    });

    return services;
}
Run Code Online (Sandbox Code Playgroud)

它非常简单,如果从 asp net core 2.2 应用程序验证令牌,它就可以很好地工作

// in the asp.net core
var builder = WebHost.CreateDefaultBuilder(args);
builder
        .UseStartup<Startup>()
        .ConfigureKestrel(_ => _.ConfigureEndpoints())
        .UseSerilog();
Run Code Online (Sandbox Code Playgroud)

还有另一个应用程序(控制台)使用 UseKestrel

//in the console app
var builder = WebHost.CreateDefaultBuilder()
    .UseNLog()
    .UseKestrel(_ => _.ConfigureEndpoints())
    .UseStartup<Startup>();
Run Code Online (Sandbox Code Playgroud)

唯一的一个显着区别是UseKestrel …

c# openid azure-active-directory asp.net-core

18
推荐指数
2
解决办法
3万
查看次数

标签 统计

asp.net-core ×1

azure-active-directory ×1

c# ×1

openid ×1