首页 > 解决方案 > 基于 .NET Framework 的 .NET Core 2.1 Web API 的授权问题

问题描述

我试图让 [Authroize] 标记在 .NET Framework 上构建的 .NET Core 2.1 Web API 项目上工作。没有 IAppBuilder.UseAuthorization()。我编写了自己的 JWT 自定义身份验证处理程序,并在 Startup 中尝试了以下操作:

 services.AddAuthentication("Basic")
        .AddScheme<BasicAuthenticationOptions, EdcAuthenticationHandler>("Basic", null);

 services.AddAuthorization();

我也有

app.UseAuthentication();

但是,同样,没有 app.UseAuthorization()

我希望能够添加 [Authorize] 属性(以及角色)并能够访问我的控制器方法中的 User 对象。

任何见解将不胜感激。

标签: asp.net-coreauthenticationasp.net-web-apijwtauthorization

解决方案


原来这很简单。我需要这样的授权标签:

[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]

services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddScheme<BasicAuthenticationOptions, EdcAuthenticationHandler>(JwtBearerDefaults.AuthenticationScheme, null);

不需要:app.UseAuthorization();

抱歉,添麻烦了。只是无法弄清楚我需要授权标签中的方案名称。


推荐阅读