我有一个只适用于注销用户的<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