2014-02-12 181 views
7

我正在使用Windows 8.1 Metro應用程序。該應用爲使用其Live帳戶登錄Windows的用戶提供了個性化體驗。在OnlineIdConnectedStateChange已觸發後檢查用戶是否已登錄

如Windows所提供的,任何用戶都可以通過PC設置 - >帳戶將他的真實賬戶連接/斷開連接到PC。我的要求是在此事件中得到通知,即每當用戶將他的真實賬戶連接/斷開連接到PC時。現在,根據MSDN頁面(http://msdn.microsoft.com/en-us/library/windows/apps/hh977056.aspx),此事件將觸發OnlineIdConnectedStateChange。我能夠在應用程序中實現後臺任務,偵聽觸發器,並且工作正常。每次,連接的Live帳戶發生變化,事件監聽器被觸發。但是,如果用戶使用某個真實賬戶登錄或從已經連接的賬戶註銷,我無法確定事實。

我嘗試使用(Metro App - How to detect if logged in with Live ID or Local Account)中提到的Windows.Security.Authentication.OnlineId.OnlineIdAuthenticator,但如果沒有用戶登錄,則會觸發身份驗證流程。這不是我想要的。我只想知道是否有人登錄的事實。我不想觸發Auth流程。

當在後臺任務中觸發OnlineIdConnectedStateChange事件時,有什麼方法可以確定用戶的登錄/退出狀態嗎?

感謝您的任何幫助。

回答

3

您可以隨時存儲成功登錄的用戶的最後一個userId,然後將該Id與當前userId進行比較,如果它爲null,則用戶註銷,如果不相同,則爲新用戶。

編輯:

  1. 用戶打開應用 1.A:用戶登錄=>商店一些標誌或用戶ID(一些信息基本上) 1.B:用戶沒有登錄=>商店一些空標誌或無效用戶id

  2. 用戶關閉應用程序

  3. 的BackgroundWorker回升的情況下,根據該標誌或信息,你可以計算出,如果用戶登錄或註銷。

根據您存儲的內容,您可以使用AppSettings或IsolatedStorage以及其他選項來存儲標誌。

+0

我的問題不是確定用戶是新的還是相同的。確定觸發「OnlineIDConnectedStateChange」事件的操作是登錄還是註銷。 –

+0

你仍然可以使用這種方法。如果Id爲空並且事件被觸發,那麼它是登錄嘗試,反之亦然。 –

+0

我從哪裏得到Id? –

相關問題