2016-10-10 28 views
0

私はXamarin Studioを使用して最初のXamarin.Formsアプリケーションを作成しました。私のアプリケーションはデフォルトのユーザー名を覚えることができないので、ユーザーは刺激を感じるたびにログインする必要があります。彼/彼女がアプリからログアウトしていない場合、自動ログインに最後のユーザーの資格情報を保存するにはどうしたらいいですか? PCLでも可能ですか?自動ログインにXamarin Formsのデフォルトのユーザー実装

答えて

2

方法1:

使用SettingsPluginあなたは必要に応じてユーザーの資格情報を格納します。これにより、すべてのモバイルアプリでPCLの設定にアクセスできます。

public static class Settings 
{ 

    private static ISettings AppSettings 
    { 
     get 
     { 
      return CrossSettings.Current; 
     } 
    } 

    //Setting Constants 

    const string UserName = "username"; 
    private static readonly string UserNameDefault = string.Empty; 

    public static string UserName 
    { 
     get { return AppSettings.GetValueOrDefault<string>(UserName, UserNameDefault); } 
     set { AppSettings.AddOrUpdateValue<string>(UserName, value); } 
    } 

    const string Password = "password"; 
    private static readonly string PasswordDefault = string.Empty; 

    public static string Password 
    { 
     get { return AppSettings.GetValueOrDefault<string>(Password, PasswordDefault); } 
     set { AppSettings.AddOrUpdateValue<string>(Password, value); } 
    } 
} 

自動ログインの場合、スプラッシュ画面ページとして空白のページを作成します。などに設定します。

このページの背後にあるコードで
Application.Current.MainPage = new MySplashScreen(); 

public partial class MySplashScreen : ContentPage 
{ 
public MySplashScreen() 
    { 
     InitializeComponent(); 

     CheckForAutoLogin(); 
    } 

private async void CheckForAutoLogin() 
    { 
    if (Settings.UserName != string.Empty && Settings.Password != string.Empty) 
     { 
      //Redirect to you desired page 
     } 

    else 
     { 
      //Redirect to login page. 
     } 
    } 
} 

したがって、上記の実装では、私は、ログイン資格情報をチェックし、それに応じてリダイレクトするようにスプラッシュ画面として一時的なページを作成しました必要なページに移動します。

このプラグインを使用すると、パスワードのような値を文字列形式で保存することはお勧めできません。そのためには、暗号化/復号化アルゴリズムを使用して、Settings.Pluginを使用して暗号化された値を保存する必要があります。

方法2:

あなたはXamarin.Auth(クロスプラットフォームSDK)を使用することができます。それはあなたの信任状を保存する安全な方法です。これは、ユーザーを認証し、アカウントを格納するためのクロスプラットフォームのSDKです。 Accountオブジェクトをアカウントストアに安全に格納して、アプリケーションでユーザーを再認証する必要がないようにすることができます。

+0

すぐにお返事ありがとうございます。私はチェックしています。 – Dipak

+0

@DipakAkhade **パスワードを保存するために設定プラグインを使わない**ことを強くお勧めします。 iOSとAndroidでは、設定プラグインは暗号化されていません。ユーザーがファイルにアクセスできる場合は、パスワードにアクセスできます。代わりに、iOSではKeyChain、AndroidではKeyStoreを使用する必要があります。代わりに、[Xamarin.Auth](https://developer.xamarin.com/recipes/cross-platform/xamarin-forms/general/store-credentials/)または[XLabs Secure Storage](https:// github。 com/XLabs/Xamarin-Forms-Labs/blob/master/src /プラットフォーム/ XLabs.Platform.Droid/Services/KeyVaultStorage.cs)これには他にもあります。 – hvaughan3

+0

hvaughan、絶対に正しい。その場合、暗号化/復号化技術を使用する必要があります。 –

関連する問題