Xamarin Forms 中的默认用户实现自动登录
Default user implementation in Xamarin Forms to auto login
我已经使用 Xamarin Studio 创建了我的第一个 Xamarin.Forms 应用程序。我的应用程序无法记住默认用户名,因此用户每次都必须登录应用程序,这很烦人。如果 he/she 尚未从应用程序注销,我如何存储最后的用户凭据以自动登录? PCL可以吗?
方法一:
使用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.
}
}
}
所以在上面的实现中,我创建了一个临时页面作为初始屏幕,只是为了检查登录凭据并相应地重定向到所需的页面。
因此,如果您使用此插件,则不建议以字符串格式存储密码之类的值。为此,您需要使用任何 encryption/decryption 算法,然后使用 Settings.Plugin.
存储加密值
方法二:
您可以使用 Xamarin.Auth(跨平台 SDK)。这是存储您的凭据的安全方式。它是一个跨平台的 SDK,用于验证用户和存储他们的帐户。它可用于在帐户存储中安全地存储 Account
对象,这样应用程序就不必总是重新验证用户。
我已经使用 Xamarin Studio 创建了我的第一个 Xamarin.Forms 应用程序。我的应用程序无法记住默认用户名,因此用户每次都必须登录应用程序,这很烦人。如果 he/she 尚未从应用程序注销,我如何存储最后的用户凭据以自动登录? PCL可以吗?
方法一:
使用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.
}
}
}
所以在上面的实现中,我创建了一个临时页面作为初始屏幕,只是为了检查登录凭据并相应地重定向到所需的页面。
因此,如果您使用此插件,则不建议以字符串格式存储密码之类的值。为此,您需要使用任何 encryption/decryption 算法,然后使用 Settings.Plugin.
存储加密值方法二:
您可以使用 Xamarin.Auth(跨平台 SDK)。这是存储您的凭据的安全方式。它是一个跨平台的 SDK,用于验证用户和存储他们的帐户。它可用于在帐户存储中安全地存储 Account
对象,这样应用程序就不必总是重新验证用户。