Перенаправление страницы для выхода из системы, не работающего с делегированной аутентификацией (Azure API Management) - PullRequest
0 голосов
/ 03 января 2019

Я использую Microsoft Azure API Management, в частности функцию делегирования, для обработки запросов на вход в систему, чтобы мой веб-сайт мог обрабатывать аутентификацию для пользователей, посещающих мой портал для разработчиков в APIM.

Я просто пытаюсь обработатьЗапрос «SignOut», посредством которого Azure API Management перенаправляет на мою Delegation страницу следующим образом:

    case "SignOut":
        //this doesn't actually log the user out; suggestions?
        return new RedirectToPageResult("Identity/Account/Logout"); 

На странице logout есть только действие POST:

    public async Task<IActionResult> OnPost(string returnUrl = null)
    {
        await _signInManager.SignOutAsync();
        _logger.LogInformation("User logged out.");
        if (returnUrl != null)
        {
            return LocalRedirect(returnUrl);
        }
        else
        {
            return Page();
        }
    }

Iпредпочел бы оставить эту страницу в покое и просто «использовать ее» для моего действия по выходу из делегированной страницы обработки событий из APIM.

Есть идеи, как обработать выход из системы с помощью перенаправления или другого метода?Я знаю, что упускаю что-то простое здесь ...

1 Ответ

0 голосов
/ 03 января 2019

Если я вас правильно понимаю, я не думаю, что вы можете сделать это без дополнительной клиентской логики.HTTP-перенаправление, которое возвращает сервер, - это 302 ответ с заголовком Location с новым URL.Браузеры реагируют на это, отправляя запрос GET по указанному URL.Где в качестве логики выхода требуется POST-запрос.Единственный способ повторно использовать текущую конечную точку POST для выхода из системы - вернуть ответ 200 со скриптом на стороне клиента, который вызовет POST для требуемой конечной точки.

Лично я предпочел бы выйти из системы прямо в конечной точке делегирования..

...