ASP.Net Owin Authentication.SignOut 退出时未通过 RedirectUri 重定向用户

ASP.Net Owin Authentication.SignOut not redirecting user via RedirectUri on sign out

-- 下面做了一个编辑-修改后的问题在最下面:

我有一个多租户应用程序,它使用 Azure AD 对用户进行身份验证。

注销时应用程序似乎忽略了注销过程生命周期中的 .RedirectUri 属性。最初注销时,我可以看到应用程序最初在此处正确重定向:

https://login.microsoftonline.com/common/oauth2/v2.0/logout?post_logout_redirect_uri={REDIRECT URI}(和尾随 QueryString 变量)。

此过程完成后,应用程序将重定向到以下位置,并且不会再重定向回来: https://login.microsoftonline.com/common/oauth2/v2.0/logoutsession

这为用户提供了标准“用户已注销,最好关闭所有浏览器 windows”。

如何防止最后一次重定向,并确保注销重定向回应用程序?

Dim callbackUrl As String = Request.Url.GetLeftPart(UriPartial.Authority) & Response.ApplyAppPathModifier("~/aservices/logout_response.aspx")
    HttpContext.Current.GetOwinContext().Authentication.SignOut(
        New AuthenticationProperties() With {.RedirectUri = callbackUrl},
        OpenIdConnectAuthenticationDefaults.AuthenticationType,
        CookieAuthenticationDefaults.AuthenticationType)

编辑: 看来这确实可以通过将 <asp:LoginStatus> 控件与 LogoutAction="Redirect" 属性 集一起使用来实现。如何在代码隐藏中复制此行为?

移动评论中的答案,

您需要在此 LoginStatus 控件中尝试 Session.Abandon()。请参考here