XAML 使用“后退”按钮时停止用户访问应用程序

vof42yt1  于 2023-04-27  发布在  其他
关注(0)|答案(4)|浏览(99)

我正在制作一个简单的密码管理应用程序,它需要用户记住一个“主密码”来访问存储在应用程序上的所有其他密码。
然而我的问题是后退按钮(和多任务处理)。就好像用户(或者更重要的是,其他人)使用这些,他/她可以访问应用程序,而不必经过初始验证页面。
有什么方法可以阻止这个问题吗?
或者有没有一种方法可以在按下开始按钮时简单地杀死应用程序?(以实现与使用后退按钮退出应用程序时相同的效果)。

gdrx4gfi

gdrx4gfi1#

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

kxeu7u2r

kxeu7u2r2#

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

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

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

vwkv1x7d

vwkv1x7d3#

我想我有最好的解决方案。在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));
        }
    }

我认为这应该工作,因为它真的不调用任何API,可能不会在windows phone 7上工作。它的简单和安全,并将提供一个坚实的用户体验。此外,因为它验证每当页面被导航到我认为这将是更难为用户试图绕过一些如何。

tktrz96b

tktrz96b4#

在Application_Deactivated事件中,仅抛出异常

private void Application_Deactivated(object sender, DeactivatedEventArgs e)
{
    throw new Exception("System Exit");
}

相关问题