После первого неудачного входа в систему и выхода из Windows кнопка входа в систему не работает на Windows Phone
Я создаю приложение, которое использует учетную запись Windows Phone Live, и для этого я использовал пример кода Windows Live Sdk.
XAML
<Grid x:Name="LayoutRoot" Background="Transparent">
<my:SignInButton Name="btnSignin" ClientId="CLIENT_ID" Scopes="wl.signin wl.basic" Branding="Windows" TextType="SignIn" SessionChanged="btnSignin_SessionChanged" HorizontalAlignment="Left" VerticalAlignment="Top" />
</Grid>
Вот код выхода
public void LogOut()
{
var authClient = new LiveAuthClient(ClientId);
authClient.Logout();
}
Но после моего первого успешного входа в систему и выхода из системы, я не мог войти в реальный аккаунт. Sign In
Кнопка не работает, даже если она вообще не отключена.
И каждый раз получаю LiveConnectSessionStatus.Unknown
состояние на SessionChanged
событие, когда я перешел на страницу входа. Что будет причиной этого? Нужно ли делать что-то еще в операции выхода из системы? Пожалуйста подтвердите.
Спасибо
2 ответа
Все, что вам нужно сделать, это:
private LiveConnectClient client;
private async void btnSignin_SessionChanged(object sender, LiveConnectSessionChangedEventArgs e)
{
if (e.Status == LiveConnectSessionStatus.Connected)
{
client = new LiveConnectClient(e.Session);
}
else
{
infoTextBlock.Text = "Not signed in.";
}
}
Вам не нужно программировать свой собственный выход из системы - после входа кнопка изменится на выход из системы. После смены входа и сеанса у вас есть Клиент - с чем вы можете делать то, что вам нужно.
Когда вы выходите из системы, вы создаете новую сессию с
public void LogOut()
{
var authClient = new LiveAuthClient(ClientId);
authClient.Logout();
}
Вы должны использовать сеанс, с которого вы вошли в систему
и для этого вы автоматически выйдете из сеанса с измененным обработчиком