2016-10-04 1 views
0

In unserer Xamarin.Android-App verwenden wir ADAL für .Net v3.13.5, um das Zugriffstoken zu erhalten.Muss der Client persistent sein und das Token selbst aktualisieren, wenn Azure Active Directory Library verwendet wird?

Es scheint, dass das Token von ADAL nur im Speicher gespeichert wird. Bei jedem Neustart der App muss sich der Benutzer erneut anmelden.

Gibt es eine Möglichkeit, dass ADAL das Token persistent macht, so dass das Token verfügbar ist, selbst wenn die App neu gestartet wird, oder die App selbst auf Token-Persistenz und Refresh-Logik achten muss?

+0

Auf Android, sie automatisch die Tokens in 'SharedPreferences' über eine Base64-String speichern, um vorausgesetzt, Sie nicht deinstallieren und die App neu zu installieren, wird der Zugriff/Aktualisierungs-Token in zwischengespeichert werden zwischen App läuft .. – SushiHangover

+0

@SushiHangover Nicht deinstallieren/neu installieren. Zwischen den App-Läufen (Benutzer verlassen die App, App wird von Android zerstört, Benutzer wieder die App öffnen) selbst wird der Benutzer wieder mit Login-Bildschirm vorgestellt. – Eight

+0

Ist 'authContext.TokenCache.ReadItems(). Count()' gleich null? Ist der Code in Ihrer Frage im 'Xamarin.Android' Projekt? In einer PCL-Bibliothek? Wenn dieser Code nicht im 'Xamarin.Android' enthalten ist, haben Sie das ADAL nugget zu Ihrem Hauptprojekt hinzugefügt? https://github.com/AzureAD/azure-activedirectory-library-for-dotnet/blob/c5c66c097a6499e0c646f5ed1db1d6d278683104/src/ADAL.PCL/AuthenticationContext.cs#L134 – SushiHangover

Antwort

2

Ich glaube, dass es eine Bugserialisierung gibt, die zu dem Problem führt, das Sie sehen. Dies bedeutet, dass Sie beim Erstellen des AuthorizationContext selbst den TokenCache übernehmen müssen.

https://forums.xamarin.com/discussion/58736/crash-in-release-build-when-using-datacontractjsonserializer

+0

Danke. Serilisierungsfehler verursachte das Problem. Bei der Verwendung von System.Runtime.Serialization als Workaround funktionieren die Dinge jetzt gut :). – Eight

Verwandte Themen