您好我正在使用this example使用Facebook登录Facebook .net sdk.Eveything现在可以保存登录按钮状态,即更改按钮状态,即从登录到注销以及是否已连接显示FB用户的名字。我怎样才能做到这一点?
答案 0 :(得分:3)
如果保存状态意味着您要保存access_token
等信息,个人资料详细信息等。假设您只想存储access_token
,则可以将其保存到隔离存储中:
private void OnSessionStateChanged(object sender, Facebook.Client.Controls.SessionStateChangedEventArgs e)
{
if (e.SessionState == Facebook.Client.Controls.FacebookSessionState.Opened)
{
string fb_access_token = ((Facebook.Client.Controls.LoginButton)sender).CurrentSession.AccessToken;
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
settings["fb_token"] = fb_access_token ;
settings.Save();
}
}
在您的应用程序中,您可以添加一个注销按钮,点击它可以从隔离存储中删除access_token
。
private void onLogOutClick(object sender, EventArgs e)
{
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
settings.Remove("access_token");
settings.Save();
}
在应用程序启动时,您可以检查access_token是否存在,您可以导航到另一个页面。如果没有,您可以重定向到登录页面。
private void Application_Launching(object sender, LaunchingEventArgs e)
{
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
if (IsolatedStorageSettings.ApplicationSettings.Contains("fb_token"))
{
// Use this access token in application for fetching other user informations
Uri nUri = new Uri("/Page1.xaml", UriKind.Relative);
RootFrame.Navigate(nUri);
}
else
{
Uri nUri = new Uri("/Login.xaml", UriKind.Relative);
RootFrame.Navigate(nUri);
}
}