0

我已使用IdentityModel.OidcClientUWP 应用并连接到 Azure AD。登录 webview 打开并自动关闭,但注销弹出窗口不会自动关闭。

我的实现是基于这个。当注销发生时,最后的函数调用会在此处进行,但直到手动关闭弹出窗口,执行才会在此AuthenticateAsync函数调用中挂起。

if (string.Equals(options.EndUrl, WebAuthenticationBroker.GetCurrentApplicationCallbackUri().AbsoluteUri, StringComparison.Ordinal))
            {
                wabResult = await WebAuthenticationBroker.AuthenticateAsync(
                    wabOptions, new Uri(options.StartUrl));
                //Execution returns here, once the popup closes manually.
            }

注销发生正确,但弹出窗口仍然存在。注销后 URL 也已正确配置。 在此处输入图像描述

4

1 回答 1

0

找到了答案。您需要设置LogoutRequest对象并IdentityTokenLoginResult对象设置(来自LoginAsync函数的响应)并将其与LogoutAsync函数一起发送。

var logoutRequest = new LogoutRequest
{
     IdTokenHint = _result.IdentityToken,
     BrowserDisplayMode = DisplayMode.Visible
};
await oidcClient.LogoutAsync(logoutRequest);
于 2021-12-07T13:33:55.410 回答