我在ASP.NET中编写代码,但它不是一个语言相关的问题。每当我编写Web应用程序,并使用剃刀视图显示数据库中的一些数据时,我都遇到了这个问题。例如我有我的数据库中的Id和Name的简单表。我想使用EditorFor字段显示名称的表。用户可以编辑所有数据并保存。因此,我使用行ID作为EditorFor Id,在javascript方法中读取输入值,使用WebMethod将它们传递给Controller并将更改保存到数据库。但在这种情况下,我可以在Firebug中更改EditorFor Id并通过错误的ID传递更改。在这种情况下编辑数据的方式是什么?当他可以编辑一行时,我不想单击编辑链接并重定向用户编辑页面。我有数据库中的5行与名称,我想一次编辑所有这些。从剃刀视图中的数据库编辑数据
0
A
回答
0
这是某种安全性,您必须在这种情况下添加安全方法。
一种方法是对您的安全结构使用RBAC方法。例如:
创建一个表并将其命名为user_groups,然后创建具有和user_groups外键的用户表
然后还将外键添加到您的“简单表”(具有id和名称)到user_groups,即代表巫婆user_groups可以更新该行,
我这很清楚。当某人想要编辑一行时,您检查该用户是否有权更改该行?
您可以在ASP MVC搜索术语 “角色基本访问控制”,
同样的东西在这里有用:
http://www.webdevbros.net/2009/12/16/role-based-access-control-in-asp-net-mvc/
0
[HttpPost]
public ActionResult EditEmailTemplate(EmailTemplate_Mst emailTemplate_Mst, string Command, int id = 0)
{
try
{
EmailTemplate_Mst et = _repository.GetEmailById(id);
if (Command == "Update")
{
et.Title = emailTemplate_Mst.Title;
et.EmailTemplate_Content = emailTemplate_Mst.EmailTemplate_Content;
et.EmailTemplate_LastModifyBy = Convert.ToInt64(Session["UserId"].ToString());
et.EmailTemplate_LastModifyDate = DateTime.Now;
_repository.UpdateEmail(et);
return RedirectToAction("ViewEmailTemplate");
}
}
catch (Exception)
{
ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator.");
}
return View(new { id = emailTemplate_Mst.EmailTemplate_Id });
}
相关问题
- 1. ASP.NET剃刀编辑数据页
- 2. 如何从数据库显示图像到剃刀视图?
- 3. MVC6从数据库加载剃刀视图
- 4. 编辑查看模板剃刀视图
- 5. 在WebMatrix中使用ASP.NET剃刀编辑数据页面
- 6. 从数据库显示的图像在剃刀/ MVC5(Asp.net)
- 7. 如何将数据从剃须刀传递到视图包
- 8. 从控制器动作传递JSON数据到剃刀视图
- 9. 动态剃刀数据源
- 10. 用剃刀保存数据
- 11. ASP.NET MVC 3剃须刀 - 从自定义编辑器中获取数据
- 12. MVC剃刀从子视图
- 13. PHP编辑数据库中的数据
- 14. 在剃刀中显示一对多的关系编辑视图
- 15. ASP.Net中的可编辑DropdownList MVC4剃刀视图[_Duplicate]
- 16. 转换数据库检索字节数组在剃刀视图MVC
- 17. 显示来自剃须刀数据库的列表图像
- 18. 将数据从剃须刀视图传递到mvc中的控制器
- 19. 如何在单个剃刀视图中编辑多个模型
- 20. ASP.Net剃刀视图
- 21. 剃刀视图引擎数据输入表格
- 22. MS MVC(剃须刀)访问视图数据serializartion
- 23. 模型数据为空视图回传mvc4剃须刀
- 24. 如何在mvc3中将数据从剃须刀视图传递给控制器?
- 25. 从模型中读取数据并在剃须刀视图上显示 - mvc
- 26. 如何使用剃须刀插入图像到数据库(asp.net)
- 27. 来自剃须刀视图的通话后编辑动作mvc4
- 28. 从剃须刀MVC实现POST到数据库
- 29. MVC 4剃须刀视图,如何让视图翻译从数据库加载的@model或@form?
- 30. 从剃须刀视图中获取整数的假值
那不是我问。当用户无法修改数据时,情况并非如此。比方说,我有名字的表格:dog(id = 1),cat(id = 2),frog(id = 3)。用户将Frog改为Fox,但他也将Firebug中的ID从3改为2。因此,当他保存数据时,Cat已更改为Fox,因为它的id = 2。如何避免这种情况? – user3482724 2014-09-01 21:05:38
真的不清楚你在问什么。在你谈论用户编辑错误记录的问题中,最后你要问如何编辑多个记录,然后在你的评论中再次询问如何防止某人编辑错误的记录。要回答您的评论...为防止用户编辑记录,他们不允许编辑,请在执行编辑前检查用户的权限。 *总是*检查用户的权限。 *永远不会*隐式信任来自客户端的数据。 – David 2014-09-01 21:12:04
如果任何用户可以修改任何数据,那么如果他们通过首先选择显示编辑器的ID来选择数据以便更新它,或者如果他们通过将数据填充到url来更新它,那么它有什么问题?这听起来像你正在使用ajax客户端帖子,而不是提交表单。这绕过了MVC保护。 – 2014-09-01 21:12:19