Реализация промежуточного программного обеспечения Owin ищет собственный тип проверки подлинности перед добавлением вызова, поэтому реагирует только соответствующее промежуточное программное обеспечение. Одновременно можно использовать несколько проблем.Задайте задачу в промежуточном программном обеспечении Owin
protected override Task ApplyResponseChallengeAsync()
{
if (Response.StatusCode == 401)
{
var challenge = Helper.LookupChallenge(Options.AuthenticationType, Options.AuthenticationMode);
if (challenge != null)
{
Response.Headers.AppendValues("WWW-Authenticate", _challenge);
}
}
return Task.FromResult<object>(null);
}
При использовании встроенного в Cookie или Носителя промежуточного слоя, тип «Знаменосец» всегда присутствует и получает посмотрел вверх.
Куда я могу добавить свой собственный тип вызова по всему миру, чтобы его подняли? Это может быть сделано вручную в контексте запроса по телефону
Request.GetOwinContext().Authentication.Challenge("Basic");
, но я хотел бы добавить глобальную конфигурацию для всех контроллеров.
Итак, когда я добавляю вызов AuthenticationManager в Startup.cs, 'Microsoft.Owin.Security.Infrastructure.SecurityHelper.LookupChallenge' вернет вызов в моем промежуточном программном обеспечении, верно? –
Как вы получаете доступ к AuthenticationManager в Startup.cs? Я не могу найти пространства имен/классы. –
'context.Authentication.Challenge()'. контекст имеет тип HttpContext и должен быть полезен в вашем startup.cs или контроллере. Свойство Authentication имеет тип AuthenticationManager. – ezile