2014-09-01 46 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/

相關問題