Buduję interfejs API MetroD # SkyDrive na wierzchu zestawu SDK Live Connect (http://msdn.microsoft.com/en-us/live/ domyślnie) - w Windows 8 użytkownik ma możliwość zalogowania się na komputerze z systemem Windows 8 za pomocą konta LOCAL lub konta LIVE.Aplikacja Metro - jak wykryć logowanie przy użyciu identyfikatora Live ID lub konta lokalnego
Podczas korzystania Live Połącz SDK, 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
przy użyciu konta lokalnego, to loguje mnie (wielki)
Kiedy nazywają ten sam kod przy użyciu konta Live, Dostaję nieobsługiwany wyjątek - nie mogę nawet dodać try {} 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, który jest zalogowany na koncie Live nie można się wylogować, mój API musi wykryć, czy bieżący użytkownik korzysta z konta na żywo, więc mogę zapobiec wywołaniu wylogowania () metoda.
so .... Moje pytanie brzmi: skąd mam wiedzieć, jakiego rodzaju konta użytkownik zalogował się w systemie Windows 8?
Dlaczego nie można po prostu nie zalogować użytkownik z konta? Pozwól im decydować. Jakie są wyniki loginResult. Nie wierzę, że Microsoft ujawni takie informacje, w przeciwnym razie może prowadzić do złośliwego oprogramowania atakującego sesję Windows Live. –
Po zalogowaniu do systemu Windows 8 przy użyciu konta na żywo nie można się wylogować, dopóki nie zostanie przełączone na inne konto lub konto lokalne ... system Windows 8 będzie zapisywać wszystkie dane. Zgadzam się, nie mogą tego ujawnić, ale wtedy SDK rzuca niedopuszczalny błąd ... więc w jaki sposób temu zapobiec? –