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

本文关键字:定时器 用户 编辑 net 服务器端 MVC asp | 更新日期: 2023-09-27 17:49:00

我有一个MVC asp.net测验应用程序。你有一个可变的时间来做测试,如果时间用完,那么答案将自动提交。

目前,我在Javascript中设置了计时器,在控制器- Session["EndTime"]中持有的时间量。但是,我的理解是,用户可以编辑Javascript并在Javascript中实现计时器。如果为真,我如何在控制器中运行计时器,并在计时器用完后发送一个动作?

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

服务器不能强迫浏览器提交任何东西,这是JavaScript代码所做的。是的,用户可以选择修改,如果他或她想。

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

  • "test"实例的唯一标识符
  • "测试"开始的日期/时间戳(或者,相反,当它过期时,因为两个值都携带相同数量的信息)

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

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