Внезапно эта ошибка начала происходить.Метод веб-API выглядит следующим образом:
// POST api/Account/Logout
[Route("Logout")]
public IHttpActionResult Logout()
{
Authentication.SignOut(CookieAuthenticationDefaults.AuthenticationType);
return Ok();
}
Этот метод находится внутри AccountController с атрибутом [Authorize].
Когда я только что вошел в систему и вижу страницу, на которой также есть [Authorize]Я нажимаю кнопку, которая позволяет мне выйти из системы.Кнопка выхода из системы вызывает Web Api с использованием Ajax.
Позвольте мне также сказать, что это работало раньше .... внезапно оно перестало работать.
Я добавил этот код в Startup.Auth.cs:
var config = new System.Web.Http.HttpConfiguration();
app.UseWebApi(config);
Но это тоже не сработало.Я добавил эту строку на всякий случай, потому что, так как я стар, ты работал раньше, без этой строки.
Любая помощь по этому вопросу, пожалуйста?
Также, пожалуйста, не предлагайтеудалите [Authorize] attibute, как я видел в других ответах здесь.Веб-интерфейсы должны называться аутентифицированными.
РЕДАКТИРОВАТЬ: это вызов в Ajax:
self.logout = function () {
// Log out from the cookie based logon.
var token = sessionStorage.getItem(tokenKey);
var headers = {};
if (token) {
headers.Authorization = 'Bearer ' + token;
}
$.ajax({
type: 'POST',
url: '/api/Account/Logout',
headers: headers
}).done(function (data) {
// Successfully logged out. Delete the token.
self.user('');
sessionStorage.removeItem(tokenKey);
location.href = '/';
}).fail(showError);
}