2010-04-05 43 views
1

我有一個WCF Web服務和一個顯示該服務數據的Silverlight應用程序。在我的服務中,如果在一段時間內(例如20分鐘)沒有調用服務方法,我想實現用戶的自動註銷。由於用戶不活動而在Silverlight和wcf中實現自動註銷

我在想水木清華這樣的:

Dictionary<User,TimeSpan> Inactivity 

當服務方法被調用我重置時間跨度。但是如果20分鐘過去了,我會調用Logout方法(清除所有用戶緩存),並突然用戶從午餐返回),並在他的Silverlight應用程序中按下按鈕,會發生什麼?顯然他會得到一個錯誤。有什麼辦法可以避免這種情況,或者我所有的想法都錯了嗎?也許有更好的方法來自動註銷用戶?

回答

0

20分鐘的推移,退出方法運行,用戶重定向到登錄頁面,用戶來自午餐,看到一個登錄頁面的消息,他的會話已過期,輸入用戶名/密碼,日誌英寸

+0

問題是,該註銷方法在Web服務中調用,而不是在客戶端上調用。並沒有辦法通知客戶有關 – 2010-04-06 12:43:17

+1

那麼,你有2個選擇:a)使用消息傳遞(Kaazing,Nirvana等)來通知客戶端註銷b)在客戶端定期檢查會話,查詢服務,如果它仍然登錄+讓客戶端處理任何服務拋出的安全異常,一旦客戶端的會話過期。 – 2010-04-06 14:46:36

+0

處理安全異常就夠了,thx。 – 2010-05-19 10:52:53