[英]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.