Android CookieManager Xamarin не может удалить куки - PullRequest
0 голосов
/ 09 июля 2019

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));

    }
}

Я хочу очистить куки в браузере ОС, чтобы учетные данные MSAL не кэшировались.

1 Ответ

0 голосов
/ 09 июля 2019

Исправлено.

Переключение с пользовательских вкладок Chrome на встроенный (WebView?) Позволяет управлять файлами cookie через CookieManager.

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

...