我使用onRequest()
来验证用户的访问级别,如果用户有权访问该页面,则包含所请求的模板。如果他没有,我会重定向到最后一个活动页面或默认页面。最后一个活动页面已存储在session
范围内。
我正在尝试在重定向的网页上显示未经授权访问的消息。
最简单的解决方案是将url
参数添加到重定向页面。
还有其他方法吗?
答案 0 :(得分:4)
由于您将“最后一个活动”页面存储在会话范围中,因此您也可以轻松地将“重定向消息”存储在会话范围中。
将状态拉出会话的链接问题是,当没有会话(例如,超时)时,它们会变得不稳定。下次重新加载链接时(例如,浏览器恢复),页面没有要显示的上下文。
因此,将状态存储在URL中并不是件坏事。无论是那个,还是你继续使用会话并明确地编写代码,以便它明智地处理“无会话”条件。
编辑:请注意@Mark关于XSS危险的评论。虽然可以通过正确使用HtmlEditFormat()
和URLEncodedFormat()
来缓解这种情况,但是人们普遍存在滥用此功能构建网页以使您的网页显示不当消息的危险。在URL中使用错误代码而不是明文消息是非常可取的。它还会缩短网址,并且对国际化非常友好。