在MainPage.xam中有PasswordBox
,如果您输入正确的密码,则可以访问Address.xaml。
密码(名为masterpass
的字符串)设置为“0000”并且有一个选项可以更改它,但每次打开应用程序时,密码再次设置为“0000”
我做错了什么?
以下是代码:
public partial class MainPage : PhoneApplicationPage
{
// Constructor
private string masterpass ="0000";
public MainPage()
{
InitializeComponent();
}
private void CustomersButton_Click(object sender, RoutedEventArgs e)
{
if (String.Compare(inizio.Password, masterpass)==0)
{
NavigationService.Navigate(new Uri("/Address.xaml", UriKind.Relative));
}
else
{
MessageBox.Show("Wrong password, please try again", "Error", MessageBoxButton.OK);
}
}
private void Save_Click(object sender, RoutedEventArgs e)
{
if (String.Compare(vecchio.Password, masterpass) == 0)
{
if (String.Compare(newmaster.Password, repeatmaster.Password) == 0)
{
masterpass = newmaster.Password;
MessageBox.Show("Password changed", "Confirmation", MessageBoxButton.OK);
}
else
{
MessageBox.Show("New password doesn't match confirmation", "Error", MessageBoxButton.OK);
}
}
else
{
MessageBox.Show("Wrong master password, please try again", "Error", MessageBoxButton.OK);
}
}
}
谢谢大家
答案 0 :(得分:0)
masterpass
只是应用程序中的一个变量,每次重新启动程序时都会重置该变量。如果要保留该值,可以使用IsolatedStorageSettings
。我建议您阅读great quickstart,但同时您可以添加以下代码:
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
// Constructor
public MainPage()
{
InitializeComponent();
if (!settings.Contains("masterPass"))
{
// set a default
settings.Add("masterPass", "0000");
settings.Save();
}
}
然后,只要您想使用masterPass
,请使用settings["masterPass"]
。更改值时,请不要忘记致电Save()
。这是一个非常快速的介绍(而不是最干净的代码),但快速入门将指向正确的方向。