用于注销的页面重定向不适用于委托身份验证(Azure API 管理)

Page redirect for logout not working with delegated authentication (Azure API Management)

我正在使用 Microsoft 的 Azure API 管理,特别是委派功能,来处理登录请求,这样我的网站就可以为在 APIM 上访问我的开发人员门户的用户处理身份验证。

我只是想处理一个 "SignOut" 请求,据此 Azure API 管理重定向到我的 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();
        }
    }

我宁愿不理会这个页面,只是 'use it' 我的注销操作来自委托页面处理来自 APIM 的事件。

知道如何使用重定向或其他方法处理注销吗?我知道我在这里遗漏了一些简单的东西...

如果我对你的理解正确,我认为你不能在没有额外的客户端逻辑的情况下做到这一点。服务器 returns 的 HTTP 重定向是 302 响应,位置 header 带有新的 URL。浏览器对此做出反应的方式是在提供的 URL 上发出 GET 请求。当您的注销逻辑需要 POST 请求时。重复使用当前 POST 端点进行注销的唯一方法是使用 client-side 脚本对 return 200 响应进行响应,该脚本会在所需端点上调用 POST。

就我个人而言,我更愿意在您的委托端点内进行注销。