如何确保Swagger API UI只允许使用ASP.NET Web API的授权用户使用



我正在研究Web API,目前我只想了解Swagger API在文档单元测试中的表现。我在网上找到了这个参考资料。你能帮助我如何保护Swagger API UI不被匿名用户或公共用户访问吗?仅指定给授权用户。

您可以添加一个全局身份验证过滤器,以便所有请求都能通过该过滤器。当您需要排除任何控制器时,可以使用[AllowAnonymous]

限制所有人,只排除需要的人,是该行业的最佳做法之一。

如果您使用的是ASP.Net Web Api

public static void Register(HttpConfiguration config)
{
config.Filters.Add(new IdentityBasicAuthenticationAttribute());
// Other configuration code not shown...
}

你可以从微软文档的链接中阅读更多关于它的信息

如果您使用的是ASP.Net Core,您可能需要创建一个中间件。根据Asp.Net关于中间件的核心文档

中间件是一种组装到应用程序管道中以处理请求和响应的软件。每个组件:+选择是否将请求传递给管道中的下一个组件。可以在调用管道中的下一个组件之前和之后执行工作。

在中间件中,检查用户是否已通过身份验证,如果是,则继续执行next();,如果未通过身份验证则发出Authentication.ChallengeAsync();

在管道中使用Authenticaion之后但使用Swagger之前添加中间件。

您可以在IIS中将SwaggerUI作为一个单独的实例进行托管,并通过IIS应用适当的授权策略。

相关内容

  • 没有找到相关文章

最新更新