我知道这已经被讨论得令人作呕,但我想展示我的案例....
我的应用程序的起始页是 login.xaml。用户登录,通过我的WCF服务验证用户名和密码,用户名保存在隔离存储中,然后将用户重定向到mainpage.xaml。
当用户启动我的应用程序时,他们已经在独立存储中保存了用户名,他们将被重定向到 mainpage.xaml
如果用户从 mainpage.xaml 中点击“后退”硬按钮,这将重定向到登录屏幕,这又将他们重定向回 mainpage.xaml,因为他们已经保存了本地用户名。这导致我的应用目前无法通过认证,因为用户无法点击“后退”按钮从 mainpage.xaml 退出应用。
我的直觉是覆盖 mainpage.xaml 中的 BackKeyPress 并以某种方式退出应用程序。通过阅读其他帖子,我可以看到此方法不可用。我的第二个想法是以某种方式在 app.xaml.cs 页面中存储一个属性,该属性会告诉应用程序在加载登录页面并且该属性设置为 true 时退出,但这似乎也有点老套......
这里有什么想法吗?
使用的更新解决方案:
最终起作用的是使登录页面成为 mainpage.xaml 中的一个枢轴项。当用户在未登录的情况下打开应用程序时,当前选择的枢轴项将更改为登录枢轴项。如果用户打开应用程序并登录,则将选择正常的数据透视表项。
最佳答案
我通过将登录页面和主页合并为一个页面,在堆栈面板中使用两个网格并操纵网格的可见性以在匿名用户和经过身份验证的用户所需的 UI 之间切换来实现这一点。这使得问题消失了,无需欺骗历史或摆弄标志。
有了合适的转换器和合适的 Visibility 属性绑定(bind),我或许可以在没有显式代码的情况下运行整个节目,但这将是聪明和聪明之间区别的一个很好的例子 - 它工作得很好,迟早我会忘记它是如何工作的(好吧,我承认,我做了这个却忘记了它是如何工作的)。
关于c# - Windows Phone 7、登录屏幕重定向和 .exit 的案例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6471652/