我已经在我的 Web API 项目中实现了 swagger。我正在使用 JWT 授权,并[Authorize]
在需要它的方法上使用属性。
所以我想要一种简单的方法来发送需要授权的请求。在我的ConfigureServices
课堂上,我添加了以下逻辑。
services.AddSwaggerGen(c =>
{
// Other swagger options
c.AddSecurityDefinition("Bearer", new ApiKeyScheme
{
In = "header",
Description = "Please enter into field the word 'Bearer' following by space and your JWT token",
Name = "Authorization",
Type = "apiKey"
});
c.AddSecurityRequirement(new Dictionary<string, IEnumerable<string>>
{
{ "Bearer", Enumerable.Empty<string>() },
});
// Other swagger options
});
其作用如下:
它在 swagger 中添加了一个新按钮 - 授权。
问题是,它还在每个方法旁边添加了一个“打开”储物柜图标。尽管如此,其中一些需要授权。
当我使用授权按钮成功授权时(它基本上为每个请求添加了标头授权),我在所有请求上收到一个“关闭”的储物柜。
我知道这可能是所需的功能,表明将通过请求发送授权令牌。我想要一种方法来显示哪些方法需要授权,哪些不需要。
例如,匿名方法的“开放”储物柜和具有[Authorize]
属性的方法的“关闭”储物柜。
它可能是一个附加图标,位于该图标旁边或用于修改该图标的行为,没问题。我怎样才能实现这个目标?
我相信一个可能的解决方案是创建一个操作过滤器并遍历所有方法并将“某些内容”仅附加到那些具有[Authorize]
属性的方法。这是最好的解决方案吗?如果是这样,你会如何实施?
沧海一幻觉
慕码人2483693
MM们
相关分类