繁体   English   中英

具有持久身份验证的Azure移动服务

[英]Azure Mobile Services with persistent authentication

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

Windows Azure的官方文档显示了使用Live SDK通过Microsoft帐户进行单点登录的可能性。 Live SDK以string形式提供身份验证令牌。 但是,即使该令牌也会在约24小时后过期。 此外,这仅限于Microsoft帐户。

如果我想缓存用户的身份并启用自动登录,该怎么办? 我已经在这里浏览了这篇文章。 令牌过期后,用户仍然必须再次登录。 我看到过要求用户仅登录一次的应用程序!

如果您使用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);
}

请注意,如果您是在模拟器上运行应用程序,则关闭模拟器可能会丢失登录信息(我以前已经看到过)。 但是,在真实设备上运行时,或者长时间不打开仿真器时,您只需登录一次即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM