2017-11-10 1 views
0

私はXamarinアプリケーションでAdalと連携しており、ユーザーが既にキャッシュに入っているかどうかを確認したい場合はAcquireTokenAsyncを呼び出してください。Adal AcquireTokenAsyncユーザーがキャッシュに入っているかどうかを事前に知る方法

デバイスにインターネットがなく、キャッシュにユーザーがいない場合、私はAzureログインページにリダイレクトされるため、インターネットにアクセスできないために失敗します。

このシナリオでは、ユーザーがインターネットアクセスを失う前にログインすると、ログインはAzureログインページにリダイレクトされません。

インターネットが利用できない場合は、醜いページを避けたいと思います。

は、私はすでに

AuthenticationContext ac = new AuthenticationContext("https://login.microsoftonline.com/x.onmicrosoft.com"); 
return ac.TokenCache.Count; 

を試してみました。しかし、私は AcquireTokenAsyncを呼び出すまで、それは0に設定され、それがユーザーのためにお願いしなくても呼び出した後、カウントが今1

おかげで何かアドバイス

答えて

2

のために私は、この例が見つかりました:https://blog.xamarin.com/put-adal-xamarin-forms/

authContext.TokenCache.ReadItems().Count() 

source codeで判断すると、通常のコールバックを呼び出してデータを読み込み、すべてのアイテムを返す。

また、AcquireTokenSilentを試すこともできます。キャッシュからトークンを取得できない場合は、AdalSilentTokenAcquisitionExceptionが返されます。

+0

完璧な作品です!、ありがとうございます! –

関連する問題