In имеют методы контроллера для ajax-запроса с атрибутом authorize.Когда я делаю запрос, когда я не вошел в систему, я получаю перенаправление на страницу входа.Мне нужны неавторизованные, а не данные страницы входа.Чтобы изменить это, я переопределил событие «OnRedirectToLogin».
Вот код:
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie(options =>
{
options.LoginPath = "/Identity/Account/Login";
options.Events.OnRedirectToLogin = ctx => Test(ctx);
});
private Task Test(RedirectContext<CookieAuthenticationOptions> ctx)
{
if (ctx.Request.ContentType != null && ctx.Response.StatusCode == (int) HttpStatusCode.OK)
{
if (ctx.Request.ContentType.Contains("application/json"))
{
ctx.Response.StatusCode = (int) HttpStatusCode.Unauthorized;
}
}
else
{
ctx.Response.Redirect(ctx.RedirectUri);
}
return Task.CompletedTask;
}
Все изменения работают, но когда я пытаюсь войти на страницу входа по умолчанию, ничего не происходит.
Что такоеПроблема есть или у вас есть лучший вариант для достижения того же результата без этой проблемы?
Спасибо за вашу помощь!
Обновление: я продолжал искать время, так как сообщение было онлайн,Теперь я обнаружил, что вход в систему работает, но аутентификация на контроллере, по-видимому, больше не.