MVC asp.net服务器端计时器,以防止用户编辑计时器

时间:2016-06-23 18:11:36

标签: javascript c# asp.net asp.net-mvc timer

我有一个MVC asp.net测验应用程序。你有足够的时间参加测验,如果时间用完,那么答案会自动提交。

目前,我在Javascript中设置了计时器,并且在控制器中保留了一段时间 - Session["EndTime"]。但是,我的理解是,用户可以编辑Javascript并在Javascript中实现时更改计时器。如果为true,如何在Controller中运行计时器并在计时器用完后发送一个Action?

1 个答案:

答案 0 :(得分:3)

服务器无法强制浏览器提交任何内容,这就是JavaScript代码的功能。并且,是的,如果用户愿意,用户可以选择修改它。

服务器将做的是跟踪两件事:

  • “test”
  • 的该实例的唯一标识符
  • “测试”开始时的日期/时间戳(或相反,当它到期时,因为任一值都带有相同数量的信息)

第一个值包含在发送到浏览器的表单中,基本上只是一个隐藏的表单字段。将测试结果发布到服务器时,服务器端代码使用标识符查找持久日期/时间戳,以将其与当前日期/时间进行比较。如果超过预期的时间已过,请拒绝测试结果并显示错误。

基本上,服务器端代码无法强制用户提交结果。但它可以拒绝未及时提交的结果。