在 Swagger.Net UI 中,如何从“匿名”方法中删除挂锁图标?

问题描述

我发现了一个类似的线程 here,但它是针对 .Net Core 的。我对 Swagger.Net API(.Net Framework)有同样的问题。

我正在将 Swagger.Net API 版本 8.3.35.101 与 .Net framework 4.6.1 一起使用,并且我在 Swagger UI 中获得了每个方法的锁定图标。我的应用程序中的某些 API 不需要身份验证,因此我想从这些 API 中删除挂锁图标。

enter image description here

需要移除的挂锁图标可以在上图中以红色突出显示。我相信可以通过实现 IOOperationFilter 来为匿名方法隐藏它,但找不到任何示例代码来使用 .Net 框架实现它。

解决方法

以下是我们在评论中讨论的答案:

问题是 ApiKey 的配置类型不正确,应该是这样:

c.ApiKey("apiKey","header","API Key Authentication",typeof(KeyAuthorizeAttribute));
c.ApiKey("appId","APP ID Authentication",typeof(KeyAuthorizeAttribute));

github 上的代码:
https://github.com/heldersepu/nhc-noaa/blob/master/nhc-noaa/App_Start/SwaggerConfig.cs#L75

还有一个现场样品:
http://nhc-noaa.azurewebsites.net/swagger/ui/index?docExpansion=list&filter=#/

挂锁图标仅在其中之一上 enter image description here