繁体   English   中英

如何在Windows Phone 8中保存登录状态?

[英]How to save log-in state in Windows Phone 8?

我正在尝试使用登录页面为WP8构建应用程序。 我想保存用户登录状态,以便最终用户不必重新输入他/她的凭据,我的应用程序是嵌入在webbrowser控件中的HTML页面。 有人可以帮助我如何保存登录状态?

首先,如果您尝试登录的网站不是您的网站,那么您所要求的将无法完成。

现在,假设您在XAML代码中使用WebBrowser ,并且您登录的网站是您的网站,那么可以假设您有一个成功登录方法:

在那里,您必须调用以下代码:

window.external.notify("LogInSuccess");

然后您的WebBrowser应该是这样的:

<phone:WebBrowser HorizontalAlignment="Stretch" Name="webBrowserControl" VerticalAlignment="Stretch" IsScriptEnabled="True" ScriptNotify="JavaScriptNotify"/>

.cs文件中调用的方法实际上应该将成功值存储到隔离的存储中,每次打开登录页面时都会检查该成功值:

void JavaScriptNotify(Object sender, NotifyEventArgs notifyArgs)
{
    // Check if the value is correct:
    if (notifyArgs.Value.Equals("LogInSuccess"))
    {
        // Save State to Isolated Storage
        var settings = IsolatedStorageSettings.ApplicationSettings;
        settings.Add("loginStatus ", "success");
    }
}

最后,您应该将登录页面的构造方法重写为以下内容:

公共LoginPage(){var loginStatus = settings [“ loginStatus”] .ToString(); if(loginStatus.Equals(success)){NavigationService.Navigate(new Uri(“ / PageAfterLoginPage.xaml,UriKind.Relative));}}

为此,请重写OnNavigatedTo方法并添加以下代码:

NavigationService.RemoveBackEntry();

最后一部分将只是从堆栈中删除登录页面,以便当用户单击“后退”按钮时,不会再次导航到该屏幕。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM