0

在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);
        }
    }
}

感谢大家

4

1 回答 1

0

masterpass只是应用程序中的一个变量,每次重新启动程序时都会重置。如果您想保留可以使用的值IsolatedStorageSettings。我建议您阅读一个很棒的快速入门,但同时您可以添加如下代码:

IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;

// Constructor

public MainPage()
{
    InitializeComponent();

    if (!settings.Contains("masterPass"))
    {
        // set a default
        settings.Add("masterPass", "0000");
        settings.Save();
    }
}

然后,每当你想使用masterPassuse settings["masterPass"]Save()更改值时不要忘记调用。这是一个非常快速的介绍(而不是最简洁的代码),但快速入门将为您指明正确的方向。

于 2013-06-18T03:45:46.520 回答