Авторизация была отклонена для этого запроса, даже когда пользователь аутентифицирован - PullRequest
0 голосов
/ 22 ноября 2018

Внезапно эта ошибка начала происходить.Метод веб-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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...