2014-09-01 50 views
0

我在ASP.NET中编写代码,但它不是一个语言相关的问题。每当我编写Web应用程序,并使用剃刀视图显示数据库中的一些数据时,我都遇到了这个问题。例如我有我的数据库中的Id和Name的简单表。我想使用EditorFor字段显示名称的表。用户可以编辑所有数据并保存。因此,我使用行ID作为EditorFor Id,在javascript方法中读取输入值,使用WebMethod将它们传递给Controller并将更改保存到数据库。但在这种情况下,我可以在Firebug中更改EditorFor Id并通过错误的ID传递更改。在这种情况下编辑数据的方式是什么?当他可以编辑一行时,我不想单击编辑链接并重定向用户编辑页面。我有数据库中的5行与名称,我想一次编辑所有这些。从剃刀视图中的数据库编辑数据

+0

那不是我问。当用户无法修改数据时,情况并非如此。比方说,我有名字的表格: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

+1

真的不清楚你在问什么。在你谈论用户编辑错误记录的问题中,最后你要问如何编辑多个记录,然后在你的评论中再次询问如何防止某人编辑错误的记录。要回答您的评论...为防止用户编辑记录,他们不允许编辑,请在执行编辑前检查用户的权限。 *总是*检查用户的权限。 *永远不会*隐式信任来自客户端的数据。 – David 2014-09-01 21:12:04

+0

如果任何用户可以修改任何数据,那么如果他们通过首先选择显示编辑器的ID来选择数据以便更新它,或者如果他们通过将数据填充到url来更新它,那么它有什么问题?这听起来像你正在使用ajax客户端帖子,而不是提交表单。这绕过了MVC保护。 – 2014-09-01 21:12:19

回答

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 }); 
} 

http://www.c-sharpcorner.com/UploadFile/4d9083/creating-insert-update-and-delete-application-in-mvc-4-using/

相关问题