私は、Visual StudioでADAL 3.13.1を使用していますXamarin.Forms(v2.2.0.31)ターゲットのAndroidを持っている2015年ADALはモード
Iデバッグ設定を使用してアプリケーションをロードすると、期待どおりに動作します。 Active Directory認証ライブラリ(ADAL)は、一度サインオンしてから、アプリケーションを完全に終了して元に戻しても、トークンキャッシュを使用します。
しかし、リリースモードで全く同じプロジェクトを開くと、再び資格情報を要求します。私はログイン猫を添付する場合
が、それは私がデバッグモードで私のWeb APIにアクセスするときに次のことを示しています... CacheType:Microsoft.IdentityModel.Clients.Activedirectory.TokenCache(1つの項目)
ログイン猫は次のことを示していRELEASEモードでWeb APIにアクセスすると... CacheType:Microsoft.IdentityModel.Clients.Activedirectory.TokenCache(0 items) ...資格情報を再度要求します。
これは、アプリケーションを完全に終了した後にのみ発生します。それ以外の場合は、メモリに保持する必要があります。リリースモードで永続的なトークンキャッシュが機能するためには、Androidマニフェストで特別な権限を有効にする必要がありますか?
編集:問題は、Androidプロジェクトのプロパティ> Androidオプション>リンカータブのリンク動作と関係があります。リリースモードではスペースを減らすためにSDKアセンブリのみをリンクしていましたが、明らかにADALは反射を使用しており、必要なファイルを除外しています。だから私はそれをNoneに変更し、それは動作します(しかし、私のアプリはかなり良くなりました)。とにかくこの作業を行い、SDKアセンブリをまだリンクしていますか?
ここに行動をリンクに関する詳細情報... https://developer.xamarin.com/guides/android/advanced_topics/linking/
ありがとうございました!リリース設定では、Androidプロジェクトのプロパティ> Androidオプションに進み、リンカータブで「Skip link assemblies」テキストボックスにSystem.Runtime.Serializationと入力しました。 – PeerlessProgrammer