asp.net-mvc - 隐藏字段的完整性 : Asp. NET mvc

标签 asp.net-mvc asp.net-mvc-2 asp.net-mvc-3 hidden-field

我们一直在使用 asp.net mvc 进行开发。有时,我们需要在表单上放置一些隐藏字段,这些字段由 modelbinder 推送到模型中(如预期的那样)。如今,用户可以使用 firebug 或其他实用程序轻松调整表单。隐藏字段的目的主要是按原样向服务器提供一些信息,它们并不意味着改变。

例如,在我的编辑员工表单中,我可以将 EmployeeID 放在隐藏字段中,但如果用户更改隐藏字段中的员工 ID,则会在数据库中更新错误的员工。在这种情况下,我们如何保持隐藏字段的完整性。

最佳答案

您需要强制执行安全性以确保进行修改的人有权这样做。我通常会将 id 放在 URL 中而不是隐藏字段中,依靠安全性来确保人们不会修改他们不应该修改的东西。如果他们在手动更改 id 时确实有权修改项目,那应该不是问题。重要的是要确保一个人不能手动更改 id 并访问他们不应该访问的东西。强制服务器端权限解决了这个问题。您可以使用 Roles 和 AuthorizeAttribute 轻松完成此操作。

关于asp.net-mvc - 隐藏字段的完整性 : Asp. NET mvc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5370786/

相关文章:

javascript - 使用 ASP.NET MVC 和 jQuery 渲染部分 View /提交表单而无需刷新页面

c# - 在哪里存储可编辑的配置参数

asp.net - 无法从 MVC2 升级到 MVC3

c# - Model 和 ViewModel 的验证最佳实践

跨网络查询时,MySql 5 和 LINQ to Entities EF 4 导致 "Object must implement IConvertible"

asp.net-mvc-3 - asp.net mvc3 - Controller 方法返回 View(viewName, string) 但随之而来的是奇怪的情况

c# - 为什么 RedirectToAction 返回 null?

c# - ASP.NET MVC 属性只允许用户编辑他/她自己的内容

c# - CustomAttribute反射(reflect)html属性MVC5

asp.net-mvc - 将 azure MVC 应用程序置于维护模式的巧妙方法