2015-07-02 55 views
1

我需要在Windows Store App中實現登錄註銷功能。我是流動世界的新人。 我想知道,如何維護登錄用戶的會話。 如何在一定時間後實現自動註銷功能。 Windows Store應用程序中是否有像ASP.NET這樣的會話狀態?如何在Windows Store應用中實現登錄註銷功能?

我從以下鏈接瞭解,有在WPF沒有會話狀態: Session in WPF?

答案之一建議使用靜態類的價值觀公共靜態屬性,我們需要存儲和全局訪問在應用程序內部。

我需要使用靜態類與公共靜態屬性的值我必須在Windows Store應用程序中登錄後使用的值?

請提供一些示例代碼與您的答案。

回答

2

如果可以的話,我會看看Azure移動服務。它們提供身份驗證後端,用戶可以使用例如Facebook或Twitter登錄進行登錄,而無需爲您的應用創建另一個用戶帳戶。 Universal Apps有一個很好的示例,https://azure.microsoft.com/en-us/documentation/articles/mobile-services-dotnet-backend-windows-universal-dotnet-get-started-users/幾乎涵蓋了超時時間以外的所有內容。

如果您正在登錄到自己的自定義後端,我認爲實現此類功能的好方法是使用上面的示例。

一般來說,我會猶豫是否實現這種超時功能,因爲這樣做並不是一種輕鬆的方式。很快就會想到你需要實現定時器,也許所有視圖的基類都會在調用任何事件時重置定時器。

我建議你寧願實施它,這樣當用戶離開應用程序時,它會將用戶關閉。在平板電腦和移動設備中,很少有用戶在屏幕上離開應用程序很長一段時間,以至於操作系統不會暫停屏幕(和應用程序),或者用戶導航到主屏幕或某些其他應用程序。

+0

謝謝!根據您的建議,我使用計時器實現了自動註銷功能。登錄後,我創建了一個類的實例(使用單例模式),在其中初始化計時器,並在每個頁面上爲(Layout)Grid的以下4個事件重置計時器:1)輕敲2)RightTapped 3)KeyDown 4) PointerMoved – user1780538

1

這種方式如何。

public class Session 
{ 
    public String UserName { get; set; } 

    public String Token { get; set; } 
} 

public class SessionManager 
{ 
    private static Session _session; 

    public static Session CurrentSession 
    { 
     get 
     { 
      return _session; 
     } 
    } 

    public static void Login(string username, string password) 
    { 
     // login the user 
     _session = new Session(); 
    } 
} 
+0

所以,我必須使用靜態類(或靜態屬性)來存儲登錄的用戶數據? – user1780538