簡體   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