我有一個只適用於註銷用戶的<asp:Wizard>
。如果用戶當前登錄,他/她將被重定向到另一個頁面。在其中一個嚮導步驟中,作爲嚮導的一部分,我通過<asp:Login>
控件要求憑證並登錄該用戶。這提出了一個問題。識別來自ASP.NET登錄控件的回發
According to MSDN:「當用戶使用登錄控件登錄網站時,視圖狀態中的所有數據和所有發佈數據都將丟失。請勿在LoggedIn事件中執行依賴視圖狀態的操作。 「
因此,我的Wizard控件在登錄過程後忘記了它所在的步驟。 「MSDN recommends:」如果將Login控件嵌入到WizardStep對象中,則在用戶通過身份驗證時,請在Page_Load事件處理程序中明確設置ActiveStepIndex屬性。在此情況下,Wizard控件不會自動前進到下一個WizardStep對象。
但是,由於所有視圖狀態都已丟失,因此登錄用戶的重定向會啓動,並將用戶從頁面中移出。在頁面加載時,確定用戶處於哪種狀態的最佳方式是什麼?
- 已經在某段時間之前登錄;需要重定向。
- 剛剛從嚮導中登錄;需要進入下一個嚮導步驟。
感謝您的任何想法。
檢查時間以來登錄似乎是明顯的路線,但它並不十分安全,所以我更喜歡另一種解決方案。用戶可以登錄,然後立即訪問此頁面,因此該值必須更像3秒(以吸引快速用戶),即使如此,緩慢加載的頁面也可能會錯過窗口,導致不必要的重定向。 – ChessWhiz 2010-10-07 16:55:06
然後將事件添加到允許的登錄控件中,並且只允許該登錄設置會話對象以防止重定向 – Willem 2010-10-07 17:11:01
這可行,但比我發佈的解決方案稍複雜。不過謝謝你的想法! – ChessWhiz 2010-10-07 18:39:06