Как включить ключ api swagger в заголовок?

Я использую Swagger API. Это дает мне желаемый результат. Но во время тестирования я изменил ключ API на какой-то неправильный ключ API (ожидая, что он выдаст ошибку), но он все равно дал мне правильный результат (который я получал с правильным ключом API). Почему это происходит?

Ниже приведен код, который у меня есть в SwaggerConfig.cs:

using System.Web.Http;
using WebActivatorEx;
using CalendarDetails;
using Swashbuckle.Application;
using System;
using System.Xml.XPath;
using System.Web.Configuration;

[assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")]

namespace CalendarDetails
{
    public class SwaggerConfig
    {
        public static void Register()
        {
            GlobalConfiguration.Configuration
                 .EnableSwagger(c =>
                    {
                        c.SingleApiVersion("v1", "CalendarDetails");

                        c.ApiKey(WebConfigurationManager.AppSettings["ApiKey"])
                            .Description("API Key Authentication")
                            .Name("X-ApiKey")
                            .In("header");
                        c.IncludeXmlComments(GetXmlCommentsPath());

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

        private static string GetXmlCommentsPath()
        {
            return System.AppDomain.CurrentDomain.BaseDirectory + @"\bin\CalendarDetails.XML";
        }
    }
}

Не могли бы вы сообщить мне, в чем я ошибаюсь?

Определите, что вы подразумеваете под «правильным выводом». Конечная точка Swagger не аутентифицирована. Предоставляемый ключ API должен гарантировать, что когда вы используете пользовательский интерфейс swagger для «тестирования» вызова API, который он документирует, ключ API будет передан. Так что, если это все еще дает вам правильный результат, то ваш фактический API на самом деле не проверяет ключ API.

Chris Becke 26.10.2018 06:13

Под «правильным выводом» я имел в виду тот же вывод, который я получал с правильным ключом API. Я ожидал, что если я дам какой-либо ключ API, кроме правильного ключа API, он должен выдать ошибку. Разве не должно?

Vikram 26.10.2018 06:19

Извините. Я должен быть более точным: если вы используете пользовательский интерфейс swagger для выполнения конечной точки api и предоставили swagger с неправильным ключом api, то это API, который используется, а не swagger, ведет себя ненадлежащим образом.

Chris Becke 26.10.2018 07:39

Какую версию Swashbuckle вы используете?

Helen 26.10.2018 09:41
1
4
89
0

Другие вопросы по теме