如何使用不记名令牌在我的网站中授权我的网络 api 控制器?
How can I authorize my web api controller in my web site with Bearer token?
我有一个具有标准登录功能的 Asp.Net MVC 核心应用程序。我在我的项目中添加了一个网络 api 控制器。我想使用不记名令牌授权网络 api 控制器。但只有这个控制器。我网站的其余部分必须像现在这样工作。如果我在我的 startup.cs 中设置了它,我的意思是不记名令牌功能有效,但它会破坏我的网站。然后我收到错误 401。是否可以仅授权具有不记名令牌的控制器?
Rex 的评论是准确的。我提供了一个代码示例,可以满足您的需求(假设是 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)]
添加此属性并传入可选范围以限制对特定用户的访问。
我有一个具有标准登录功能的 Asp.Net MVC 核心应用程序。我在我的项目中添加了一个网络 api 控制器。我想使用不记名令牌授权网络 api 控制器。但只有这个控制器。我网站的其余部分必须像现在这样工作。如果我在我的 startup.cs 中设置了它,我的意思是不记名令牌功能有效,但它会破坏我的网站。然后我收到错误 401。是否可以仅授权具有不记名令牌的控制器?
Rex 的评论是准确的。我提供了一个代码示例,可以满足您的需求(假设是 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)]
添加此属性并传入可选范围以限制对特定用户的访问。