2016-10-10 3 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); } 
    } 
} 

자동 로그인의 경우 스플래시 화면 페이지로 빈 페이지를 만듭니다. 로 설정과 같은 :

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. 
     } 
    } 
} 

그래서 위의 구현에, 난 그냥 리디렉션 따라 로그인 자격 증명을 확인하고 시작 화면으로 임시 페이지를 만든

:이 페이지의 뒤에 코드에

Application.Current.MainPage = new MySplashScreen(); 

원하는 페이지로 이동하십시오.

따라서이 플러그인을 사용하면 비밀번호와 같은 값을 문자열 형식으로 저장하는 것은 좋지 않습니다. 암호화/복호화 알고리즘을 사용하고 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, 절대적으로 정확합니다. 이 경우, 모든 암호화/복호화 기술을 사용해야합니다. –

관련 문제