Events UWP:从Page.OnNavigatedTo事件调用Frame.Navigate()

Events UWP:从Page.OnNavigatedTo事件调用Frame.Navigate(),events,navigation,uwp,Events,Navigation,Uwp,我想在页面加载期间检查用户的身份验证,或者在页面加载之后检查用户导航到的身份验证。这使我能够提供一个由授权过滤的导航,具有单个页面粒度 例如,如果用户未登录,而某个页面需要身份验证,则必须将用户重定向到登录页面 当我尝试从OnNavigatedTo事件导航到另一个页面时,当上一个导航未完成且新的导航失败时,就会出现问题。我搜索了其他事件,如OnNavigationCompleted,但没有找到任何内容。如果我使用异步方法而不等待它工作,就像我使用计时器调度器一样,但这两种解决方案听起来都不那么干

我想在页面加载期间检查用户的身份验证,或者在页面加载之后检查用户导航到的身份验证。这使我能够提供一个由授权过滤的导航,具有单个页面粒度

例如,如果用户未登录,而某个页面需要身份验证,则必须将用户重定向到登录页面

当我尝试从
OnNavigatedTo
事件导航到另一个页面时,当上一个导航未完成且新的导航失败时,就会出现问题。我搜索了其他事件,如
OnNavigationCompleted
,但没有找到任何内容。如果我使用异步方法而不等待它工作,就像我使用计时器调度器一样,但这两种解决方案听起来都不那么干净


是否存在处理导航完成后引发的事件的方法,或者我必须在导航调用期间预先检查授权?我希望避免这种解决方案,因为错误的呼叫可能会显示未经授权的页面。

我认为预检查是最好的方法。在导航到该页面之前,请检查他们是否有权查看该页面。如果他们未经授权,询问他们是否想要登录或购买该页面的权限

如果您确实想要一个单独的页面,根据此回答,您可能会使用加载的事件。但我会先测试一下,以确定是否正确

旁注:另外,您的问题意味着您在视图codebehinds中执行业务逻辑-这是一种糟糕的做法,我建议您研究MVVM模式。(如果您需要框架,我建议使用MVVMLight或PRISM)