gpt4 book ai didi

xamarin - 使用 Microsoft 身份验证库 (MSAL) 时注销不起作用

转载 作者:行者123 更新时间:2023-12-04 12:51:21 25 4
gpt4 key购买 nike

我有一个 Xamarin.Forms iOS/Android 应用程序,必须根据 Microsoft Azure B2C AD 对用户进行身份验证。

我已经添加了 Microsoft.Identity.Client NuGet 并使用它进行身份验证。

登录工作正常,我能够使用返回的 token 调用我们自己的 Azure 托管服务。

问题是,当我尝试注销用户时,它没有按预期工作。

如果用户注销并在终止应用程序后立即退出,则应用程序下次启动时会按预期显示登录屏幕。

为了终止 iOS 上的应用程序,我通过双击主页按钮并向上滑动进入应用程序切换器。

但是,如果用户没有终止应用程序,而是按下我的登录按钮(触发对 AcquireTokenAsync() 的调用),则登录屏幕不会由 Microsoft.Identity.Client 显示,而是会立即返回一个有效 token ,并且该应用程序能够使用此 token 进行服务调用,即它是一个有效 token 。

下次启动该应用程序时, token 不再存在,并出现登录屏幕。

奇怪的是,当我从 GitHub/active-directory-b2c-xamarin-native 运行样本时我看到了同样的行为。所以我怀疑这是 Microsoft 的 MSAL 组件中的错误。

根据示例注销应该简单地通过调用来完成

PublicClientApplication.UserTokenCache.Clear(PublicClientApplication.ClientId);

我也试过添加

foreach (var user in PublicClientApplication.Users)
{
user.SignOut();
}

没有任何变化。

有什么建议吗?

最佳答案

只需在 Droid 项目中添加以下行:

CookieManager.Instance.RemoveAllCookie();

在 iOS 中,

 foreach (var cookie in NSHttpCookieStorage.SharedStorage.Cookies)
{
NSHttpCookieStorage.SharedStorage.DeleteCookie (cookie);
}

有关更多详细信息,请访问此链接 https://developer.xamarin.com/guides/xamarin-forms/cloud-services/authentication/azure/

关于xamarin - 使用 Microsoft 身份验证库 (MSAL) 时注销不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37792244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com