Metro App - Как определить, если вы вошли в систему с Live ID или локальной учетной записью
Я создаю Metro C # SkyDrive API поверх Live Connect SDK (http://msdn.microsoft.com/en-us/live/default) - в Windows 8 у пользователя есть выбор для входа в Windows 8 машина с ЛОКАЛЬНОЙ или ЛИВОЙ учетной записью.
При использовании Live Connect 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, я получаю неоправданное исключение - я даже не могу добавить try {} catch {} вокруг этой ошибки.
Exception:
Cannot sign out from the application since the user account is connected. (Exception from HRESULT: 0x8086000E)
Очевидно, что поскольку пользователь, вошедший в систему под учетной записью Live, не может выйти из системы, мой API должен определить, использует ли текущий пользователь действующую учетную запись, чтобы я мог предотвратить вызов метода logout ().
so .... У меня вопрос, как узнать, с каким типом учетной записи пользователь вошел в Windows 8?