2017-09-01 12 views
0

xamarin.formsモバイルアプリケーション でOAuth(webapi)によって生成されたトークンを取得するために使用されるクラスがあります。これが生成されたら、私はそれに再びアクセスでき、これを常に生成しない場所に を格納する必要があります。 これをPclに保存するにはどこが最適ですか?また、ユーザーがログオフすると、これを一度削除することもできます。 xamarin.formアプリケーションでトークンを格納する場所

 class LoginService 
     { 
      public async Task Login(string username, string password) 
      { 
       HttpWebRequest request = new HttpWebRequest(new Uri(String.Format("{0}Token", Constants.BaseAddress))); 
       request.Method = "POST"; 

       string postString = String.Format("username={0}&password={1}&grant_type=password", 
       HttpUtility.HtmlEncode(username), HttpUtility.HtmlEncode(password)); 
       byte[] bytes = Encoding.UTF8.GetBytes(postString); 
       using (Stream requestStream = await request.GetRequestStreamAsync()) 
       { 
        requestStream.Write(bytes, 0, bytes.Length); 
       } 

       try 
       { 
        HttpWebResponse httpResponse = (HttpWebResponse)(await request.GetResponseAsync()); 
        string json; 
        using (Stream responseStream = httpResponse.GetResponseStream()) 
        { 
         json = new StreamReader(responseStream).ReadToEnd(); 
        } 
        TokenResponseModel tokenResponse = JsonConvert.DeserializeObject(json); 
        return tokenResponse.AccessToken; 
       } 
       catch (Exception ex) 
       { 
        throw new SecurityException("Bad credentials", ex); 
       } 
      } 
     } 

答えて

0

フォームには、小さなビットの永続データを格納できるProperties辞書が組み込まれています。

Application.Current.Properties ["token"] = myToken; 
+0

XLabs

  • SecureStorage
  • セキュアストレージAkavacheに?ユーザーがアプリケーションを閉じるとどうなりますか?価値は失われますか? – user2320476

  • +0

    はい、共有プロジェクトで使用します。それは自動的に永続化されます - あなたがリンクしているドキュメントを読むことをお勧めします。 – Jason

    3

    トークンは機密情報ですので、安全に保管することをおすすめします。セキュアストレージは、iOSのサービスKeychainとAndroidのKeyStoreクラスから利用できます。 Xamarinはを使ってそれを行う方法が非常に良いですXamarin.Authを使用しています。利用可能

    その他のオプションは以下のとおりです。

    1. BlobCache.SecureこれはPCLに適用されますので、
    関連する問題