2016-08-10 4 views
0
をリリースモードでトークンを永続が、デバッグで正常に動作しない

私は、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/

答えて

1

リンクLIBSのに問題がありました。固定されていないようだ。

これらをリンクするスキップを試してください。 Microsoft.IdentityModel.Clients.ActiveDirectory; Microsoft.IdentityModel.Clients.ActiveDirectory.Platform; System.Runtime.Serialization;

特に、私はSystem.Runtime.Serializationをスキップするだけでうまくいくと思います。

乾杯、 マックス

+0

ありがとうございました!リリース設定では、Androidプロジェクトのプロパティ> Androidオプションに進み、リンカータブで「Skip link assemblies」テキストボックスにSystem.Runtime.Serializationと入力しました。 – PeerlessProgrammer

関連する問題