C# 4.0 第一次成功登录后&;注销windows live登录按钮在windows phone上不起作用
我正在创建一个使用Windows Phone Live帐户的应用程序&我就是这么做的C# 4.0 第一次成功登录后&;注销windows live登录按钮在windows phone上不起作用,c#-4.0,windows-phone-8,windows-phone,live-sdk,C# 4.0,Windows Phone 8,Windows Phone,Live Sdk,我正在创建一个使用Windows Phone Live帐户的应用程序&我就是这么做的 xaml 但是在我第一次成功登录和注销后,我无法登录live帐户,这意味着登录按钮不起作用,即使它没有被禁用。每次我在导航到登录页面时都会收到LiveConnectSessionStatus.Unknown状态。原因是什么?在注销操作中我还需要做些什么吗?请确认 感谢您在注销时使用创建新会话 public void LogOut() { var authClient = new Liv
xaml 但是在我第一次成功登录和注销后,我无法登录live帐户,这意味着
登录
按钮不起作用,即使它没有被禁用。每次我在导航到登录页面时都会收到
LiveConnectSessionStatus.Unknown
状态。原因是什么?在注销操作中我还需要做些什么吗?请确认感谢您在注销时使用创建新会话
public void LogOut()
{
var authClient = new LiveAuthClient(ClientId);
authClient.Logout();
}
您必须使用从中登录的会话
为此,您将在会话更改处理程序中自动注销,您需要做的一切是:
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.";
}
}
您不必为自己的注销编程-登录后,buton会将自己更改为注销。在登录和会话更改后,您就有了客户端-您可以做您需要的事情。您好,谢谢您的回复。如何将会话id附加到身份验证客户端?@asitis您是否使用不同的按钮注销?哦。!!我现在明白原因了。有一个计时器正在运行,用于在调试模式下在屏幕上显示内存消耗详细信息。在释放模式下,我现在检查了&没有发现问题。我刚刚评论了计时器的初始化&它很好。不知道为什么会发生这种情况?你知道如何通过另一个按钮单击从live帐户注销吗?@asitis你必须同时设置两个按钮eventhandlers?你想使用不同的按钮或选项来注销,而不是使用SignIn按钮吗?@Romasz不,不需要。但是我只是想避免这个问题,我尝试了和你说的一样的方法,但是在第一次登录和注销后遇到了同样的问题。哦。!!我现在明白原因了。有一个计时器正在运行,用于在调试模式下在屏幕上显示内存消耗详细信息。在释放模式下,我现在检查了&没有发现问题。我刚刚评论了计时器的初始化&它很好。不知道为什么会这样?我想不是这样的。如果您给wl.sign,那么当用户第一次成功登录时,他就不必注销(应用程序会记住登录名和密码)。当您不注销时,在您第二次导航并订阅sessionchanged之后,它将与connected一起触发。检查这个-它工作吗?是的,这在未注销的情况下是正确的。但在注销的情况下,我会得到未知状态。你知道如何通过点击另一个按钮从live帐户注销吗?当你注销(在我的应用程序中)时,你会被未知的会话更改(你注销)。注销后,应用程序会忘记用户登录名和密码(一部手机上可能有多个用户)。所以,当您首先再次导航时,会在sessionchanged中获得未知事件。但您可以通过单击按钮登录,再次提示您输入登录名和密码。
public void LogOut()
{
var authClient = new LiveAuthClient(ClientId);
authClient.Logout();
}
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.";
}
}