2010-11-13 78 views
0

hi 让我解释一下这个场景。如何在asp.net中实现用户会话c#

我正在开发在线考试申请。一旦用户登录系统,他可以开始测试;在点击开始测试按钮时,用户被重定向到问题页面。现在当用户点击并通过按钮点击确认测试结束时,他将被重定向到结果页面。

现在我想要的是,当显示结果页面时,用户应该自动从系统注销,并且不应该通过按浏览器的后退按钮返回到前一页。

我现在面临的问题是,当显示结果页面时,任何人都可以按下后退按钮并继续测试并操作结果。我怎样才能阻止这一点。需要一个详细的解决方案。

回答

0

您应该将登录用户存储在会话或cookie中。 如果用户登录,结果页面应始终检查cookie或会话。 如果不是,结果页面将显示一些反馈消息。

2

您将需要禁用页面缓存。当您按下后退按钮时,浏览器将使用页面的缓存版本。如果禁用缓存,当浏览器执行后台操作时,它将确定需要再次提取页面,处理页面时用户不再登录。

+0

禁用缓存不是最佳解决方案! – Falcon 2010-11-13 13:01:58

2

存储会话变量,如currentQ保存最新问题的ID。如果用户试图回答以前回答的问题,请不要接受答案,而是将他重定向到正确的页面。

这也会阻止他在考试过程中使用后退按钮。

+0

走吧! +1代表 – Falcon 2010-11-13 13:02:46

0

您可以做的最佳方式是使用母版页或在每个页面上放置用户控件。 MasterPage/UserControl应检查当前会话(无论用户是否登录)。如果会话可用,则应该继续,否则应该转到登录屏幕。在结果页面上,您可以清除会话值。

现在,如果用户在结果页面按下后退按钮,页面(masterpage或usercontrol)将不会找到会话并将页面重定向到登录页面。

我希望这会帮助你。