我应该如何向 swashbuckle 添加身份验证?
How should I add authentication to swashbuckle?
我正在使用 swashbuckle 将 swagger 添加到我的 asp.net mvc web api 项目中。我看到添加 OAuth2 的选项,但我的网站要求 uires wsfederation。我如何请求ui重新验证以使用 wsfederation 查看 swagger ui?
GlobalConfiguration.Configuration
.EnableSwagger(c =>
{
c.SingleApiVersion("v1", "Services");
})
.EnableSwaggerUi(c => { });
SwaggerConfig
文件中的身份验证直接链接到记录您的 API,而不是实际的实现,可以这么说。
因此,如果您在 swaggerConfig 中使用以下内容:
c.OAuth2("oauth2")
.Description("OAuth2 Implicit Grant")
.Flow("implicit")
.AuthorizationUrl("http://petstore.swagger.io/oauth/dialog")
.Scopes(scopes =>
{
scopes.Add("read:pets", "read your pets");
scopes.Add("write:pets", "modify pets in your account");
});
这将在 swagger json 文件中生成以下安全定义
securityDefinitions:
petstore_auth:
type: oauth2
authorizationUrl: 'http://petstore.swagger.io/oauth/dialog'
flow: implicit
scopes:
'write:pets': modify pets in your account
'read:pets': read your pets
回答
How can I require authentication to view the swagger ui with
wsfederation?
只需在WebApiConfig.cs
文件中全局添加身份验证,类似于以下内容(如果您使用的是MessageHandler或Filter)
config.Filters.Add(new WSFederationAuthentication());
查看swagger文档直接webapi相关
不过您可能会遇到一些问题,因为 Swagger 获取文档客户端。
我正在使用 swashbuckle 将 swagger 添加到我的 asp.net mvc web api 项目中。我看到添加 OAuth2 的选项,但我的网站要求 uires wsfederation。我如何请求ui重新验证以使用 wsfederation 查看 swagger ui?
GlobalConfiguration.Configuration
.EnableSwagger(c =>
{
c.SingleApiVersion("v1", "Services");
})
.EnableSwaggerUi(c => { });
SwaggerConfig
文件中的身份验证直接链接到记录您的 API,而不是实际的实现,可以这么说。
因此,如果您在 swaggerConfig 中使用以下内容:
c.OAuth2("oauth2")
.Description("OAuth2 Implicit Grant")
.Flow("implicit")
.AuthorizationUrl("http://petstore.swagger.io/oauth/dialog")
.Scopes(scopes =>
{
scopes.Add("read:pets", "read your pets");
scopes.Add("write:pets", "modify pets in your account");
});
这将在 swagger json 文件中生成以下安全定义
securityDefinitions:
petstore_auth:
type: oauth2
authorizationUrl: 'http://petstore.swagger.io/oauth/dialog'
flow: implicit
scopes:
'write:pets': modify pets in your account
'read:pets': read your pets
回答
How can I require authentication to view the swagger ui with wsfederation?
只需在WebApiConfig.cs
文件中全局添加身份验证,类似于以下内容(如果您使用的是MessageHandler或Filter)
config.Filters.Add(new WSFederationAuthentication());
查看swagger文档直接webapi相关
不过您可能会遇到一些问题,因为 Swagger 获取文档客户端。