我在Live Connect SDK之上構建Metro C#SkyDrive API(http://msdn.microsoft.com/zh-cn/live/默認) - 在Windows 8中,用戶可以選擇使用LOCAL帳戶或LIVE帳戶登錄Windows 8計算機。Metro App - 如何檢測是否使用Live 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帳戶時調用相同的代碼,我遇到了一個無關緊要的異常 - 我甚至無法在此錯誤周圍添加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時,在切換到另一個帳戶或本地帳戶之前,您不能「註銷」...... windows 8會讓您登錄到所有內容。我同意,他們可能不公開這個,但然後SDK拋出了一個不可處理的錯誤......那麼我該如何防範呢? –