當ASP.NET會話過期並且用戶正在使用Silverlight插件時,我們希望將用戶重定向到登錄頁面。Silverlight,RIA和ASP.Net會話超時
所以,場景是,我們有一個運行ASP.Net的遺留應用程序,我們所有的新模塊都在Silverlight中,舊應用程序加載Silverlight應用程序。這一切都有效:-)然後,用戶離開桌面並在ASP.Net會話超時後返回,但隨後嘗試繼續在使用RIA域服務的Silverlight應用程序中執行某些操作。由於會話超時,RIA域服務失敗,但它不會因SessionExpired異常而失敗,也不會失效,它只會失敗,並且域異常與域中拋出的「真實」異常類似模型,所以我們無法確定這次是因爲會話過期。
關於如何讓ASP.Net會話保持活動狀態,我們不想這樣做,我們希望會話過期,但我們希望能夠在Silverlight中正常處理它,並指導用戶登錄頁面。
我們有這個工作,但問題是無論何時在Silverlight應用程序中引發異常,這會將您重定向到登錄頁面,這不是預期的行爲。我們只想在會話過期的情況下重定向。
任何想法?
您應該調用RegistrationWindow,而不是嘗試重新加載HtmlPage。這是一個更好的答案:http://stackoverflow.com/a/8083744/178620 –
非常感謝您的提示。如果您使用Silverlight登錄/註冊窗口,則是正確的。我更願意使用asp.net表單身份驗證和HTML網絡表單進行登錄,因爲惡意用戶無法登錄就無法下載Silverlight應用程序。在這種情況下,我的答案仍然正確,我更喜歡您的解決方案。 – slfan
我看到你現在從哪裏來 - 這個問題指定了RIA,大多數人只會使用RegistrationWindow。如果您不介意以您的觀點更新您的答案,我將能夠取消投票。 –