0

我正在制作一个简单的密码管理应用程序,它要求用户记住一个“主密码”来访问他/她存储在应用程序中的所有其他密码。

但是我的问题是后退按钮(和多任务处理)。好像用户(或更重要的是,其他人)使用这些,他/她可以访问应用程序而无需经过初始验证页面。

有没有办法阻止这个问题?

或者有没有办法在按下开始按钮时简单地杀死应用程序?(达到与使用返回按钮退出应用程序时相同的效果)。

4

4 回答 4

2

使用 App.xaml.cs 中的 Application_Activated 事件来检测这一点并相应地应用您的逻辑,例如再次请求身份验证。
没有用于关闭 Windows Phone 7 应用程序的 API。对于 Windows Phone 8,您可以使用 Application.Current.Terminate();

于 2013-07-25T20:15:20.170 回答
0

我想我有最适合你的解决方案。在 app.xaml.cs 中,您将创建一个全局变量 didResume。在 Appication_Activated 事件中,您要将 didResume 设置为 true。现在,每当您加载需要用户身份验证的页面时,请检查变量以查看用户是否恢复,如果他们恢复了,您可以随心所欲地处理它。这是 app.xaml.cs 的代码:

  public static  bool didResume = false;
  private void Application_Activated(object sender, ActivatedEventArgs e)
    {
        didResume = true;
    }

现在您只需将此方法添加到您要保护的任何页面:

  protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        base.OnNavigatedTo(e);
        if(App.didResume)
        {
            NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
        }
    }

我认为这应该可以工作,因为它确实不会调用任何可能无法在 windows phone 7 上运行的 API。它简单且安全,将提供可靠的用户体验。另外,因为它会在页面导航到时进行验证,所以我认为用户尝试绕过某些方法会更加困难。

于 2013-07-30T09:05:40.640 回答
0

如果您的应用程序面向 Windows Phone 7(将在 Phone 8 上运行),您可以使用以下行退出应用程序:

new Microsoft.Xna.Framework.Game().Exit();

这可以在 Microsoft.Xna.Framework.Game 程序集中找到。

于 2013-07-26T17:29:30.917 回答
-1

在 Application_Deactivated 事件中只抛出一个异常

private void Application_Deactivated(object sender, DeactivatedEventArgs e)
{
    throw new Exception("System Exit");
}
于 2013-07-25T20:10:40.783 回答