0

Xamarin Android CookieManager.hasCookies() 返回 false,表示没有 cookie。

public static async Task<string> SignOut(){

    IEnumerable<IAccount> accounts = await App.IdentityClientApp.GetAccountsAsync();

    foreach (IAccount account in accounts)
    {
        await App.IdentityClientApp.RemoveAsync(account);
    }

    DependencyService.Get<ILogoutHelper>().LogoutSSO();

    graphClient = null;
    TokenForUser = null;

    return "";
}

public class LogoutHelper : ILogoutHelper
{
    public void LogoutSSO()
    {
        CookieManager.Instance.RemoveAllCookies(null);
        CookieManager.Instance.RemoveAllCookie();
        CookieManager.Instance.RemoveSessionCookie();
        CookieManager.Instance.Flush();
        Device.BeginInvokeOnMainThread(() => new Android.Webkit.WebView(null).ClearCache(true));

    }
}

我想清除操作系统浏览器上的 cookie,以便不缓存 MSAL 登录凭据。

4

1 回答 1

0

固定的。

从 Chrome 自定义选项卡切换到嵌入式(WebView?)允许您通过 CookieManager 管理 cookie。

App.UiParent = new UIParent(Xamarin.Forms.Forms.Context as Activity, true);

https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/wiki/MSAL.NET-uses-web-browser#choosing-between-embedded-web-browser-or-system-browser-on- xamarinandroid

于 2019-07-09T14:01:07.867 回答