1

我正在尝试在我的 Windows Phone 应用程序中使用 Windows Azure 移动服务实现身份验证。我遵循了官方教程,并且身份验证工作正常。问题是,每当应用程序关闭并重新启动时,用户必须输入用户名和密码。由于服务仅使用身份验证令牌,因此登录页面上的“记住我”选项不太可能起作用。

Windows Azure 的官方文档显示了使用 Live SDK 使用 Microsoft 帐户进行单点登录的可能性。Live SDK 以string. 但是,即使这个令牌也会在大约 24 小时内过期。此外,这仅限于 Microsoft 帐户。

如果我想缓存用户的身份并启用自动登录,我有什么可能?我已经阅读了这里的文章。令牌过期后,用户仍需重新登录。我见过需要用户登录一次的应用程序!

4

1 回答 1

2

如果您使用 Live SDK,用户只需登录一次。您每次都会调用 Live SDK,但 SDK 本身将为您管理缓存令牌,并在需要时向服务器请求(在大多数情况下无需用户干预) - 请参阅示例代码以下。

var liveIdClient = new LiveAuthClient(clientId);
var liveLoginResult = await liveIdClient.LoginAsync("wl.basic wl.signin".Split());
if (liveLoginResult.Status == LiveConnectSessionStatus.Connected) {
    var token = new JObject();
    token.Add("authenticationToken", liveLoginResult.Session.AuthenticationToken);
    var user = await MobileService.LoginAsync(MobileServiceAuthenticationProvider.MicrosoftAccount, token);
}

请注意,如果您在模拟器上运行您的应用程序,那么如果您关闭模拟器,登录信息可能会丢失(我过去曾见过这种情况)。但是,当在真实设备上运行时,或者如果您让模拟器长时间打开),您应该只需要登录一次。

于 2013-11-05T03:50:57.927 回答