客户端在使用 Azure Active Directory 库时是否需要自己持久化和刷新令牌?
Does client need to persist and refresh token itself when using Azure Active Directory Library?
在我们的 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 持久化令牌,以便即使应用程序重新启动令牌也可用,或者应用程序本身需要处理令牌持久性和刷新逻辑?
我相信有一个错误序列化导致了您所看到的问题。这意味着您在构造 AuthorizationContext 时必须自己取得 TokenCache 的所有权。
在我们的 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 持久化令牌,以便即使应用程序重新启动令牌也可用,或者应用程序本身需要处理令牌持久性和刷新逻辑?
我相信有一个错误序列化导致了您所看到的问题。这意味着您在构造 AuthorizationContext 时必须自己取得 TokenCache 的所有权。