Asp.net mvc 如何在我的网站中使用承载令牌授权我的web api控制器?

Asp.net mvc 如何在我的网站中使用承载令牌授权我的web api控制器?,asp.net-mvc,asp.net-core,asp.net-web-api,bearer-token,Asp.net Mvc,Asp.net Core,Asp.net Web Api,Bearer Token,我有一个具有标准登录功能的Asp.NETMVC核心应用程序。我已经在我的项目中添加了一个web api控制器。我想用承载令牌授权web api控制器。但只有这个控制器。我网站的其他部分必须按照现在的方式工作。如果我在startup.cs中设置了它,我指的是承载令牌功能,它可以工作,但会破坏我的网站。然后我得到错误401。是否可以仅授权具有承载令牌的控制器 雷克斯的评论是准确的。我包含了一个代码示例,它将为您提供所需的内容(假设使用JWT) Startup.cs public void Confi

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

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

Startup.cs

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

[Authorize(ADD OPTIONAL USER SCOPES/POLICIES)]

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

是的,您只需使用[Authorize]属性修饰控制器方法。它将限制令牌验证仅限于该方法