访问Swagger UI时提示用户进行身份验证的简单方法(Web API 2)

时间:2016-02-07 18:12:48

标签: asp.net-web-api asp.net-web-api2 swagger-ui

我正在使用Swagger来记录我的服务(Web API 2)。我正在寻找一种真正的轻量级方法,要求访问者在访问UI界面之前输入用户名/密码。

这个结果正是我想要实现的: Example of API authentication prompt

我希望密码保护的是Swagger UI,而不是实际的服务。

我在web.config中尝试过授权规则,但无法使其工作(可能是因为UI文件夹实际上并不存在)。我还看了一下URL授权和基本身份验证,但我并没有真正取得进展。

我按照下图显示最终结果:

Authentication Prompt

非常感谢任何指导。

1 个答案:

答案 0 :(得分:0)

我重新考虑了这一点,并认为有一个更明智的解决方案也是更好的做法。

我在'测试'下创建了一个新版本。子域(例如test.api.mydomain.com)并使用IIS基本身份验证来保护整个目录(显然确保用户拥有最少的权限和强密码)。

对于生产代码,我通过删除" EnableSwaggerUi"来禁用Swagger。调用SwaggerConfig.cs文件。

这允许我为受密码保护的合作伙伴开放测试区域,并且无需在生产中使用密码保护Swagger。