[英]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.