Я использую Openidict.
Я пытаюсь вернуть настраиваемое сообщение с настраиваемым кодом состояния, но Я не могу этого сделать. Моя конфигурация в startup.cs
:
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(o =>
{
o.Authority = this.Configuration["Authentication:OpenIddict:Authority"];
o.Audience = "MyApp"; //Also in Auhorization.cs controller.
o.RequireHttpsMetadata = !this.Environment.IsDevelopment();
o.Events = new JwtBearerEvents()
{
OnAuthenticationFailed = context =>
{
context.Response.StatusCode = HttpStatusCodes.AuthenticationFailed;
context.Response.ContentType = "application/json";
var err = this.Environment.IsDevelopment() ? context.Exception.ToString() : "An error occurred processing your authentication.";
var result = JsonConvert.SerializeObject(new {err});
return context.Response.WriteAsync(result);
}
};
});
Но проблема в том, что контент не возвращается. Отчет об инструментах разработчика Chrome
(не смогли)
для статуса и
Не удалось загрузить данные ответа
для ответа.
Я также пробовал:
context.Response.WriteAsync(result).Wait();
return Task.CompletedTask;
но результат тот же.
Желаемое поведение:
Я хотел бы вернуть пользовательский код статуса с сообщением о том, что пошло не так.
vendor.js
. Вы используетеapp.UseStaticFiles()
в своемStartup.cs
файле? В таком случае его необходимо зарегистрировать доapp.UseAuthentication()
. - person Brad   schedule 07.02.2018UseStaticFiles
, и он зарегистрирован доUseAuthentication
. Загружаетсяvendor
, но ошибка возникает изvendor
. - person Makla   schedule 07.02.2018