Windows 8 ストア アプリ (XAML/C#) 用に v5.3 Live SDK を使用していますが、質問があります。
- 私のアプリでは、ユーザーが Microsoft アカウントを使用して Windows にログインしている場合、名/姓/Microsoft ID を取得したいと考えています。
- 彼らがローカル アカウントを使用して Windows にログインしていて、自分のアプリにログインしていない場合、[ログイン] ボタンを表示して、Microsoft アカウントの電子メール/パスワードを入力できるようにしたいと考えています。
Live SDK を使用してこれらすべてを行う方法は知っていますが、質問は、ユーザーが Microsoft アカウントで Windows にログインしているか、MS アカウントにログインしていないローカル アカウントでログインしているかをどのように見分けることができますか?
以下を使用できます。
var idAuth = new OnlineIdAuthenticator();
return idAuth.CanSignOut;
ただし、上記の 2 つの基準のいずれかが true の場合、これは false を返します (ユーザーがローカル アカウントを使用しているが、Microsoft アカウントの詳細を使用してアプリにログインしている場合は true を返します)。
理論的には、上記が false を返した場合、次のことができます。
LiveAuthClient authClient = new LiveAuthClient();
LiveLoginResult authResult = await authClient.LoginAsync(new List<string>() { "wl.signin" });
if (authResult.Status == LiveConnectSessionStatus.Connected)
{ //Get user info here }
問題は、これが Microsoft アカウントを使用して Windows にログインしているユーザーに対しては正常に機能することです。ユーザーの情報は正常に取得されますが、ローカル アカウントで Windows にログインしているユーザーの場合、Live Login 画面が表示されます。私のアプリ - その時点で、私はそれをしたくなく、UI にログオン ボタンを表示するだけです。
上記の2つの基準の違いを見分ける方法について誰かアイデアはありますか?
期待していただきありがとうございます、リチャード。