首页 文章

在Asp.Net Core 2中使用JwtBearer身份验证时,返回401而不是重定向到登录页面

提问于
浏览
1

在初创公司,我有

services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
    options.TokenValidationParameters = new TokenValidationParameters
    {
        ValidateIssuer = true,
        ValidateAudience = true,
        ValidateLifetime = true,
        ValidateIssuerSigningKey = true,
        ValidIssuer = Configuration["Jwt:Issuer"],
        ValidAudience = Configuration["Jwt:Issuer"],
        IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Jwt:Key"]))
    };
});

然后

app.UseAuthentication();

两个问题

  • 除了那些具有[AllowAnonymous]的控制器/操作外,如何设置默认启用的授权?

  • 如何让代码返回401而不是重定向到Login页面?

关于这一点有很多问题和答案,但它们似乎总是关于具有许多认证方案的站点,例如cookie和jwt . 我有一个纯jwt认证的后端,只有令牌发行者 endpoints 将具有匿名访问权限,其他所有内容都经过身份验证和授权 .

1 回答

  • 0

    我需要配置 StatusCodePages 中间件以避免重定向 .

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        ...
        app.UseStatusCodePages();
        ...
    }
    

相关问题