asp.net-web-api – 标题中的API密钥与swashbuckle

前端之家收集整理的这篇文章主要介绍了asp.net-web-api – 标题中的API密钥与swashbuckle前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在一个带有Swashbuckle的WebAPI项目上进行基于API密钥的身份验证(swagger for .net).

我已将swashbuckle配置如下:

config
    .EnableSwagger(c =>
    {
        c.ApiKey("apiKey")
            .Description("API Key Authentication")
            .Name("X-ApiKey")
            .In("header");
        c.SingleApiVersion("v1","My API");

    })
    .EnableSwaggerUi();

(见https://github.com/domaindrivendev/Swashbuckle#describing-securityauthorization-schemes)

它似乎创建了我期望的swagger文件

   "securityDefinitions": {
      "apiKey": {
        "type": "apiKey","description": "API Key Authentication","name": "X-ApiKey","in": "header"
      }
    }

但是当我转到UI并“试一试”时,它会尝试将API密钥放入查询字符串(我认为是默认行为)而不是标题.

例如:

curl -X POST –header’Eccept:application / json”http:// localhost:63563 / api / MyMethod?api_key = key’

如何使用swigger将API密钥放在标头而不是查询字符串中?

解决方法

看看这个:
config
    .EnableSwagger(c =>
    {
        c.ApiKey("apiKey")
            .Description("API Key Authentication")
            .Name("X-ApiKey")
            .In("header");
        c.SingleApiVersion("v1","My API");

    })
    .EnableSwaggerUi(c => {
        c.EnableApiKeySupport("X-ApiKey","header");
    })

猜你在找的asp.Net相关文章