У меня есть гибридное приложение web api/mvc, и я настроил его на использование проверки подлинности файлов cookie. Это отлично работает для части mvc приложения. Веб-API обеспечивает авторизацию, но вместо возврата 401 - Unauthorised
он возвращает 302 - Found
и перенаправляет на страницу входа. Я бы предпочел, чтобы он возвращал 401
. Я попытался подключиться к делегату CookieAuthenticationProvider.OnApplyRedirect
, но, похоже, он не вызывается. Что я пропустил? Моя текущая установка ниже:
AntiForgeryConfig.UniqueClaimTypeIdentifier = Constants.ClaimTypes.Subject;
JwtSecurityTokenHandler.InboundClaimTypeMap = new Dictionary<string, string>();
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = "Cookies",
ExpireTimeSpan = TimeSpan.FromMinutes(20),
SlidingExpiration = true,
CookieHttpOnly = true,
CookieSecure = CookieSecureOption.Never, //local non ssl-dev only
Provider = new CookieAuthenticationProvider
{
OnApplyRedirect = ctx =>
{
if (!IsAjaxRequest(ctx.Request))
{
ctx.Response.Redirect(ctx.RedirectUri);
}
}
}
});
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
Authority = IdentityConfig.Authority,
ClientId = IdentityConfig.SoftwareClientId,
Scope = "openid profile roles",
RedirectUri = IdentityConfig.RedirectUri,
ResponseType = "id_token",
SignInAsAuthenticationType = "Cookies"
});