Пропадает заголовок запроса

118
10 апреля 2021, 01:00

Отправляю запрос с заголовком Autorization. Если смотреть данные о запросе через кастомный middleware, то он там есть

Далее дело доходит до контроллера

[HttpGet]
[ActionName("GetUserData")]
public string GetUserData()
{
    return HttpContext.User.Claims.FirstOrDefault(x=>x.Type=="Email").Value;
}

И тут уже заголовок вместе с Claims куда-то пропадает

По какой причине данные о запросе исчезают, пока доходят до контроллера?

Метод Configure выглядит следующим образом:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {              
        app.UseHsts();
    }
    app.UseAuthentication();
    //MyMiddleware в этом не причастен, пробовал его убирать
    app.UseMiddleware<MyMiddleware>();
    app.UseHttpsRedirection();
    app.UseMvc();
}
Answer 1

Заметил, что хоть и отправляю запрос протоколом http на порт 5000, в контроллере HttpContext.Request.Scheme имеет значение https. Покопался и нашел причину.

По стандарту Параметры веб сервера в свойствах проекта имеют следующий вид:

https://localhost:5001;http://localhost:5000

Если же все протоколы здесь привести к одному виду (либо http либо https), то данные о запросе не пропадают и доходят до контроллера. Не знаю, почему так, но буду благодарен, если кто-то объяснит сие явление.

READ ALSO
Механизм работы виртуальных методов в C#

Механизм работы виртуальных методов в C#

Мне немного не ясен механизм работы виртуальных методов в C#Знаю, что для каждого класса, имеющего виртуальные методы, есть своя таблица виртуальных...

89
Объясните смысл конструкции [In, Out] byte[] array

Объясните смысл конструкции [In, Out] byte[] array

встретил такую конструкцию в кодяре: [In, Out] byte[] array Передается как параметрДайте пожалуйста четкое конкретно объяснение, зачем оно нужно,...

100
WPF Объединение ContextMenu разных контролов

WPF Объединение ContextMenu разных контролов

Есть два любых контролаОдин главный, второй дочерний

81
Гарантирует ли .NET при Select().ToList(), что порядок элементов не изменится?

Гарантирует ли .NET при Select().ToList(), что порядок элементов не изменится?

Допустим, есть List<SomeObject>, где SomeObject- это какой-то объект с десятком полей

96