Я пытаюсь создать веб-API. net core 2.2 с настраиваемой схемой аутентификации, но я не могу прочитать содержимое моего HTTP-запроса, содержащего параметр авторизации. Я создал следующий атрибут:
[AttributeUsage(validOn: AttributeTargets.Class | AttributeTargets.Method)]
public class ApiKeyAuthAttribute : Attribute, IAsyncActionFilter
{
public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{
var auth = context.HttpContext.Request.Headers["Authorization"];
await next();
}
}
Затем я украсил вызовы атрибутом «[ApiKeyAuthAttribute]». Атрибут вызывается, но «auth» всегда пуст. Я проверил http-вызов, и он содержит следующую строку:
GET http://localhost:5000/secret HTTP/1.1
Authorization: hmacauth 65d3a4f0-0239-404c-8394-21b94ff50604:YasPG+z7r1jyUUqAlXY9G91Ov0IfDfA9sNvW4NLocIU=:4977ca7250414e9c8c8b3d9a703fcf9e:1596303518
Host: localhost:5000
Я предполагаю, что мне нужно что-то добавить при запуске приложения, но я не уверен ..
Это мой текущий запуск приложения
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseMvc();
}