У меня возникла проблема с получением соответствующего заголовка Access-Control-Allow-Origin с сервера, когда у меня есть и JWT Bearer Authentication, и CORS включены в одной службе. Когда я удаляю UseJwtBearerAuthentication из конфигурации, все работает.Заголовки ядра Asp.net, JWT и CORS
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(options =>
{
options.AddPolicy("AllowAllOrigins", builder =>
{
builder.AllowAnyOrigin();
builder.AllowAnyHeader();
builder.AllowAnyMethod();
builder.AllowCredentials();
});
});
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, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
app.UseJwtBearerAuthentication(options =>
{
options.AutomaticAuthenticate = true;
options.RequireHttpsMetadata = false;
options.Audience = "c2cf422a-a432-2038-b183-cda64e16239e";
options.Authority = "domain.com";
});
app.UseCors("AllowAllOrigins");
app.UseIISPlatformHandler();
app.UseMvc();
}
Я попытался изменить порядок настройки, но ничего не работает. Я также попытался добавить [EnableCors («AllowAllOrigins»)] к контроллеру, который я звоню.
Я изменил порядок конфигурации на основе рекомендации в комментариях и определили свойство вызывает вопрос:
app.UseIISPlatformHandler();
app.UseCors("AllowAllOrigins");
app.UseJwtBearerAuthentication(options =>
{
options.AutomaticAuthenticate = true;
options.RequireHttpsMetadata = false;
options.Audience = "c8cf662a-ac73-4050-b285-cda90e22992e";
options.Authority = "iwdwk.com";
});
app.UseMvc();
В приведенном выше коде, линия ниже, кажется, вызывает вопрос:
options.AutomaticAuthenticate = true;
К сожалению, мне нужно включить это, чтобы я мог передавать токен JWT для авторизации ... Если не существует другого способа сделать это?
Хммм. Мы на 100% уверены, что это не просто проблема с заказом? Я считаю, что правильным порядком должен быть материал для ведения журнала, затем «UseIISPlatformHandler», затем «UseCors», затем «UseJwtBearerAuthentication» и, наконец, «UseMvc». Можете ли вы попробовать попробовать? –
Не уверен ... Я чувствую, что пробовал все комбо, но я не систематически проходил через них. Я дам ваше предложение попробовать, когда я приеду на работу этим утром. –
По-прежнему нет ... Я обновляю вопрос, потому что обнаружил свойство, вызывающее проблему. –