2011-01-19 59 views
1

我敢肯定,必須有一個簡單的答案,但我無法弄清楚 -如何保護Silverlight應用程序登錄屏幕/自定義表單

我有一個Silverlight 4 OOB應用程序需要登錄屏幕/安全。該視圖顯示了一個LoginView(用戶名/密碼),然後將詳細信息傳遞給WCF服務並根據數據庫進行檢查。它會將結果返回給客戶,說明他們的詳細信息是否有效。這部分工作正常。

我需要一些指導是存儲用戶登錄/驗證當前Silverlight會話這一事實的最佳方式。

這是OOB,所以我們不能使用任何網絡cookie /會話的東西據我所知。我假設我們必須在線程中存儲某種身份,但我需要一些指針。

另一個需要注意的是,我想確保所有其他頁面都能檢查用戶是否已通過身份驗證,如果沒有,則重定向到登錄屏幕。我使用的導航框架,所以我有一個框架 - 這可能會更容易...

任何提示或指針讚賞 - 我只需要一些想法,開始請。

回答

2

只是存儲用戶在任何你喜歡的地方被認證的事實 - 我傾向於喜歡Application對象,因爲它是一個應用程序範圍的設置,但是你可以將你的「IsAuthenticaed」和/或「Roles」 。

看看WCF RIA服務 - 即使你不想使用他們的解決方案,你可以看看它所生成的認證代碼,並看到一個很好的現實世界的例子,說明這可以如何工作。

至於重定向如果用戶沒有登錄,我建議在您的框架上使用INavigationContentLoader,它可以在一箇中心位置實現此邏輯。查看INavigationContentLoader和認證/授權的主題由大衛投票這兩個優秀的帖子:

http://www.davidpoll.com/2010/01/01/opening-up-silverlight-4-navigation-authenticationauthorization-in-an-inavigationcontentloader/

http://www.davidpoll.com/2010/05/10/common-navigation-ui-and-authorization-driven-sitemaps/

+0

感謝奧斯汀 - 我認爲有可能是存儲會話的更先進的方式(而不是到全局布爾值)。感謝您的鏈接 - 我會檢查出來! AFAIK大衛民意調查是導航框架的實際作者,所以這將是一個很好的開始... – Rodney 2011-01-19 05:46:46