小编jai*_*ai1的帖子

如何使用 AzureAD 和 Microsoft.Identity.Web 在 Blazor Server 中调用“SignOut”?

我有一个 Blazor 服务器应用程序 (.net5),它使用 Microsoft.Identity.Web 将用户登录到 AzureAD。这部分一切按预期工作 - 加载应用程序,它会自动获取“Microsoft Signin”对话框。AuthenticationStateTask 还将用户显示为“IsAuthenticated”。我的问题是尝试添加“注销”按钮。

我努力了:

<a href="https://login.microsoftonline.com/common/oauth2/v2.0/logout">Log out</a>
Run Code Online (Sandbox Code Playgroud)

和:

<a href="https://login.microsoftonline.com/{domainID}/oauth2/logout">Log Out</a>
Run Code Online (Sandbox Code Playgroud)

两者都会将我带到 Microsoft“请稍候,我们将您注销”页面,唯一的区别是第一个选项要求“从哪个帐户”注销。在浏览器中按“返回”或再次手动转到站点地址,我会自动以以前的用户身份重新登录。如果我按“注销”,然后手动转到:

/signout-oidc
Run Code Online (Sandbox Code Playgroud)

我得到一个空白页面(我理解是正确的),但然后返回到 Wep 应用程序,我被正确地要求再次登录 - 所以我的假设是回调不会被自动调用。

在我的 appsettings.json 中,我有:

"CallbackPath": "/signin-oidc",
"SignedOutCallbackPath": "/signout-callback-oidc",
"RemoteSignOutPath": "/signout-oidc",
Run Code Online (Sandbox Code Playgroud)

以及域和租户等。

在 Azure Web 注册中,我在“前端通道注销 URL”字段中有 /signout-oidc。

我一定错过了一些东西(或者调用了错误的网址?),但是经过几个小时的研究,我无法解决它。

对此的任何帮助将不胜感激,谢谢。

azure-active-directory blazor-server-side

2
推荐指数
1
解决办法
6626
查看次数