1

Windows Phone アプリで Windows Azure Mobile Services による認証を実装しようとしています。公式のチュートリアルに従いましたが、認証は正常に機能します。問題は、アプリを閉じて再度起動するたびに、ユーザーがユーザー名とパスワードを入力する必要があることです。サービスは認証トークンのみを使用するため、ログイン ページの [Remember me] オプションは機能しない可能性があります。

Windows Azure の公式ドキュメントには、Live SDK を使用した Microsoft アカウントでのシングル サインオンの可能性が示されています。Live SDK は、認証トークンを の形式で提供しますstring。ただし、このトークンでも約 24 時間で有効期限が切れます。また、これは Microsoft アカウントのみに限定されます。

ユーザーの ID をキャッシュして自動ログインを有効にしたい場合、どのような方法がありますか? 私はすでにここの記事を読んでいます。トークンの有効期限が切れると、ユーザーは再度ログインする必要があります。ユーザーが 1 回だけサインインする必要があるアプリを見たことがあります。

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);
}

エミュレーターでアプリを実行している場合、エミュレーターを閉じるとログイン情報が失われる可能性があることに注意してください (これは過去に見たことがあります)。ただし、実際のデバイスで実行している場合、またはエミュレーターを長時間開いたままにしている場合は、ログインする必要があるのは 1 回だけです。

于 2013-11-05T03:50:57.927 に答える