我不太确定这个问题应该如何表达,所以如果我问错了,请耐心等待。
我正在编写一个使用 VB 作为语言背后的代码的 ASP.NET 应用程序。我有一个连接到数据库的数据访问类来运行查询(当然是参数化的),还有另一个类来执行验证任务——我从我的 aspx 页面访问这个类。
我想要的是能够存储数据服务器端并等待用户根据数据的有效性从几个选项中进行选择。但是除非我的理解完全不正确,否则当多个用户连接时,服务器上的持久数据对象会出现问题吗?
我的最终目标是,一旦数据经过验证,最终用户就无法修改它。目前我正在验证数据,但我仍然必须在用户说好的之后从网络表单中检索它,这显然留下了意外(不太可能)或故意(也不太可能使用)注入不良数据的可能性,但我不想冒险)。
所以我完全不理解吗?如果是这样,有人可以向我指出一个资源,该资源提供一些关于在服务器上保留持久数据的说明,或者提供说明?
谢谢!
具体示例:
我们最近聘请了检查员 Gadget 为路标检查员插入数据,他们巡视高速公路路标,确保没有一个路标被嚼泡泡糖或被盗,他们通常是青年市议会的正直成员。
如果 Gadget 可以证明他的勇气,那么他可能会被提升去做实际的标志检查。目前,他唯一的工作就是访问这个 Intranet 站点,输入有关最近检查的信息。安装和检查标志的区、县、路线#、路段和日期。
当然,我们这些 80 年代末还活着的人都熟悉 Gadgets 的无能。因此,该网站几乎可以作为我们可以制作的小工具证明。区/县/路都是通过下拉列表填写的,他只需要手动输入路段的开始和结束以及日期。有时他会摸索鼠标并最终交换部分的开头和结尾,doh!因此文本变为红色以提醒他注意错误。不幸的是,他今天选择戴上他的防红太阳镜,将所有红色变成黑色。好吧,在尝试提交数据后,它会向他显示一条错误消息,告诉他在哪里以及需要修复什么。不幸的是,他用手指敲了敲键盘,没有输入 1.337,而是输入了 13.37(英里)——而这条路只有 10 英里长!出色地,现在会弹出一条消息(模态 div)并告诉他道路的实际里程为 0-10,并且他的输入将结合道路的三个部分。然后他有三个按钮可供选择。Cancel 允许他去修改他的数据,Constrain 将 13.37 转换为 10,而 Override 将允许他输入该数据。
“约扎!” 小工具惊呼一声,点击取消返回并修复他的错误。好吧,他正确输入的下一组数据,因此弹出了一条确认消息,显示他将要进行的更改并询问是否可以继续。好吧,不幸的是,Inspector Gadget 打翻了他的咖啡杯,碎屑散落在他的桌子上。在他匆忙清理它之前,他点击了“确定”,但在他的 Go-Go-Gadget 电磁铁不小心翻转了他电脑上的几个位之前,将县的表格从 ARKANSAS 更改为 AKRSANAS,呵呵!
如果数据存储在整个校园的服务器上,并且传递的唯一信息是“确定”或“取消”,则可以避免这种情况。
当然,我总是可以在“OK”之后再次验证,但这似乎是一个 hacky 解决方法。
无论如何,我希望这能澄清!