在我们的Xamarin.Android应用中,我们使用ADAL for .Net v3.13.5来获取访问令牌。
var authContext = new AuthenticationContext(AD_AUTHORITY);
if (authContext.TokenCache.ReadItems().Count() > 0)
{
authContext = new AuthenticationContext(authContext.TokenCache.ReadItems().First().Authority);
}
var authResult = await authContext.AcquireTokenAsync(API_RESOURCE_ID_URI, CLIENT_ID, new Uri(REDIRECT_URI), new PlatformParameters(callerActivity));
return authResult.AccessToken;
似乎令牌仅由ADAL存储在内存中。每次应用重启时,用户都必须重新登录。
有没有办法让ADAL持久化令牌,这样即使app重新启动,令牌仍然可用,或者应用程序本身需要处理令牌持久性和刷新逻辑?
答案 0 :(得分:2)
我相信有一个错误序列化会导致您遇到的问题。这意味着在构造AuthorizationContext时,您必须自己拥有TokenCache。