基于 .NET Framework 的 .NET Core 2.1 Web API 的授权问题
Posted
技术标签:
【中文标题】基于 .NET Framework 的 .NET Core 2.1 Web API 的授权问题【英文标题】:Authorization on .NET Core 2.1 Web API built on .NET Framework problem 【发布时间】:2020-12-29 08:48:41 【问题描述】:我正在尝试让 [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 对象。
任何见解将不胜感激。
【问题讨论】:
【参考方案1】:事实证明这很简单。我需要这样的授权标签:
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
和
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddScheme<BasicAuthenticationOptions, EdcAuthenticationHandler>(JwtBearerDefaults.AuthenticationScheme, null);
不需要: app.UseAuthorization();
很抱歉给您带来麻烦。只是想不通我需要授权标签中的方案名称。
【讨论】:
以上是关于基于 .NET Framework 的 .NET Core 2.1 Web API 的授权问题的主要内容,如果未能解决你的问题,请参考以下文章
基于.Net Framework 4.0 Web API开发:ASP.NET Web APIs 基于令牌TOKEN验证的实现
基于.NET的微软ORM框架视频教程(Entity Framework技术)
Phenix Framework 6 for CSLA:基于.NET Framework 4.5 和 CSLA 4.3.14.0 的 开发框架
Phenix Framework 6 for CSLA:基于.NET Framework 4.5 和 CSLA 4.3.14.0 的 开发框架
Phenix Framework 6 for CSLA:基于.NET Framework 4.5 和 CSLA 4.3.14.0 的 开发框架