Live Connect SDK(http://msdn.microsoft.com/en-us/live/)の上にMetro C#SkyDrive APIを構築しています。デフォルト) - Windows 8では、LOCALアカウントまたはLIVEアカウントのいずれかを使用してWindows 8マシンにSignInを選択することができます。Metro App - ライブIDまたはローカルアカウントでログインしているかどうかを検出する方法
ライブ接続SDKを使用する場合はローカルアカウントを使用しているとき、私は
// assume wlscopes is properly set
LiveAuthClient liveAuthClient = new LiveAuthClient();
LiveLoginResult loginResult = await liveAuthClient.LoginAsync(wlscopes);
// do some stuff on skydrive
liveAuthClient.Logout(); // <-- issue only with live account, not local
を呼び出す場合LIVEのアカウントを使用しているとき、私は同じコードを呼び出すと、それは(素晴らしい)
私をログアウトし、私はunhanded例外を取得 - 私はこのエラーの周りにtry {} catch {}を追加することはできません。
例外:
明らかCannot sign out from the application since the user account is connected. (Exception from HRESULT: 0x8086000E)
Liveアカウントでログインしているユーザがログアウトすることができないので、私のAPIは、現在のユーザーが、ライブ口座を使用している場合、私は(ログアウトを呼び出す防ぐことができるように検出する必要があります) 方法。
so ....私の質問は、どのようにユーザーがWindows 8でサインインしたアカウントの種類を知っていますか?その答えが見つかり
なぜあなただけログインできないことはできませんユーザーのアカウントから彼らに決定させる。 loginResultの結果は何ですか?マイクロソフトがこの種の情報を公開するとは思わない。さもなければ、Windows Liveセッションを標的とするマルウェアにつながるだろう。 –
ライブアカウントでWindows 8にログインすると、別のアカウントまたはローカルアカウントに切り替えるまで「ログアウト」できません。私は同意する、彼らはこれを公開することはできませんが、その後、SDKは、ハンドルできないエラーを投げている...だから私はそれを防ぐには? –