Webview2 SPA SSO

问题描述

是否可以在仅在浏览器中运行的 SPA 和在 WPF 应用程序中的 webview2 中运行的另一个 SPA 之间使用 oauth 和 open id 连接设置 SSO?

我无法让它工作。浏览器中的 SPA 和 webview2 托管的 SPA 似乎不在我的 IdentityProvider 共享同一个会话?

解决方法

WebView2 无法直接与 Edge 浏览器共享状态。

当您创建 WebView2 时,您指定(或获取特定于您的应用程序的默认位置)一个用户数据文件夹,WebView2 在其中存储所有状态。这包括 cookie、本地存储、indexeddb 等。 Edge 浏览器有自己独立的用户数据文件夹(在 Canary、dev、beta 和稳定频道之间安装的每个 Edge 浏览器都有自己的文件夹),WebView2 不能将这些文件夹用作其用户数据文件夹。

您可以在 WebView2 feedback github project 上提出功能请求。

您可以在 Manage user data folder in WebView2 阅读有关 WebView2 的用户数据文件夹的更多信息。

作为一种解决方法,我不确定,但可以使用 Edge 浏览器支持的其他一些 API 来提取状态,例如 WebDriver。