首页 > 解决方案 > 如何使用 Bearer 令牌在我的网站中授权我的 web api 控制器?

问题描述

我有一个具有标准登录功能的 Asp.Net MVC 核心应用程序。我在我的项目中添加了一个 web api 控制器。我想用不记名令牌授权 Web api 控制器。但只有这个控制器。我网站的其余部分必须按照现在的方式工作。如果我在我的 startup.cs 中设置了它,我的意思是不记名令牌功能,它可以工作,但它会破坏我的网站。然后我收到错误 401。是否可以仅授权具有不记名令牌的控制器?

标签: asp.net-mvcasp.net-coreasp.net-web-apibearer-token

解决方案


雷克斯的评论是准确的。我包含一个代码示例,它将为您提供所需的内容(假设 JWT)。

启动.cs

public void ConfigureServices(IServiceCollection services)
    {
     services
          .AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
          .AddJwtBearer(options =>
           {
            options.TokenValidationParameters = new TokenValidationParameters
           {
            // omitted
           };
     });

你的控制器

[Authorize(ADD OPTIONAL USER SCOPES/POLICIES)]

添加此属性并传入可选范围以限制对特定用户的访问。


推荐阅读