我正在尝试将 swagger UI 集成到我们在 Angular
上运行的客户端应用程序中。我在 angular 应用程序上使用 swagger-ui
库来实现这一点。但问题是,由于我们的应用程序托管在 Windows 上,因此我们对所有服务都使用了 Windows 身份验证。
swagger-ui
库不支持 winAuth
流,它只支持 OAuth
。所以我想到了手动调用 swagger 路由来获取 json,然后将其传递给 lib,这样应该就可以了。
但我再次面临的问题是,在调用 Swagger
路由时,响应标头会自动携带值为 Access-Control-Allow-Origin
的 *
。从我们的 .NET server side
开始,我们就是这样做的
#if DEBUG
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "http://localhost:4200");
#else
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
#endif
我尝试将其注释掉,但仍然默认情况下,swagger 路由在响应中带有 CORS
标头。我不确定是否有办法覆盖它?如果我可以从我的任何一项服务中获取 swagger json,我就可以直接调用 ServiceX
来获取 swagger json,就像我的其他 API 一样。
请告诉我是否有任何解决方法或任何方法可以仅针对 swagger 路由禁用 Windows 身份验证?