Metro App - Jak wykryć, czy jesteś zalogowany za pomocą Live ID lub konta lokalnego

Buduję API Metro C # SkyDrive na szczycie Live Connect SDK (http://msdn.microsoft.com/en-us/live/default) - w systemie Windows 8 użytkownik ma możliwość wyboru SignIn na komputerze z systemem Windows 8 z kontem LOCAL lub kontem LIVE.

Jeśli korzystam z SDK Live Connect, jeśli zadzwonię

// 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

podczas korzystania z konta LOCAL wylogowuje mnie (świetnie)

Kiedy dzwonię pod ten sam kod podczas korzystania z konta LIVE, otrzymuję nieobsługiwany wyjątek - nie mogę nawet dodać catch {} catch {} wokół tego błędu.

Wyjątek:

Cannot sign out from the application since the user account is connected. (Exception from HRESULT: 0x8086000E)

Oczywiście, ponieważ użytkownik zalogowany na koncie Live nie może się wylogować, mój api musi wykryć, czy bieżący użytkownik korzysta z konta na żywo, więc mogę zapobiec wywołaniu metody logout ().

więc .... Moje pytanie brzmi: skąd mam wiedzieć, jakiego typu konto użytkownik zalogował się w systemie Windows 8?

questionAnswers(1)

yourAnswerToTheQuestion