Отправляю запрос с заголовком 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();
}
Заметил, что хоть и отправляю запрос протоколом http на порт 5000, в контроллере HttpContext.Request.Scheme имеет значение https. Покопался и нашел причину.
По стандарту Параметры веб сервера в свойствах проекта имеют следующий вид:
https://localhost:5001;http://localhost:5000
Если же все протоколы здесь привести к одному виду (либо http либо https), то данные о запросе не пропадают и доходят до контроллера. Не знаю, почему так, но буду благодарен, если кто-то объяснит сие явление.
Продвижение своими сайтами как стратегия роста и независимости