我正在使用Xamarin应用程序中的Adal,我想知道如何在调用AuthenticationContext ac = new AuthenticationContext("https://login.microsoftonline.com/x.onmicrosoft.com");
return ac.TokenCache.Count;
之前确定用户是否已经在缓存中。
我需要这个,因为当设备没有互联网,并且缓存中没有用户时,我将被重定向到Azure登录页面,由于缺乏互联网访问,该页面将失败。
在这种情况下,当用户在失去Internet访问权限之前登录时,登录将不会重定向到Azure登录页面。
当互联网不可用时,我想避开丑陋的页面。
我已经尝试了
AcquireTokenAsync
但是在我呼叫cache: false,
type: 'POST'
之前它被设置为0,并且在呼叫之后即使它没有要求用户,计数现在是1
感谢任何建议
答案 0 :(得分:2)
我找到了这个例子:https://blog.xamarin.com/put-adal-xamarin-forms/
authContext.TokenCache.ReadItems().Count()
根据source code判断,它会调用正常的回调来加载数据,然后将所有项目都还给你。
您还可以尝试AcquireTokenSilent
,如果无法从缓存中获取令牌,则会抛出AdalSilentTokenAcquisitionException
。