1
A
回答
3
看看TryUpdateModel()
(MSDN article found here)。你可以指定你想要什麼方法的黑名單和白名單,以實際更新:
public ActionResult MyUpdateMethod (MyModel myModel)
{
if (ModelState.IsValid)
{
var myDomainModel = new DomainModel();
if (TryUpdateModel (myDomainModel,
new string[] { /* WhiteList Properties here */ },
new string[] { /* BlackList Properties here */ })
{
// Save it or do whatever
return RedirectToActionV (/* Yada */);
}
}
return View (myModel);
}
}
伴隨着的是,我會確保你的發佈模式不包含字段您希望用戶更新,儘管可以使用手工製作的表單文章重寫該內容。這至少可以幫助您確保您不會意外地將字段放在您不想編輯的頁面上。
1
如果你不想領域爲可編輯爲什麼讓他們在首位編輯表單編輯?使用兩個獨立的視圖模型。一個用於顯示所有必要數據的GET請求。只讀數據將只是文本/標籤。第二個視圖模型將用於POST/PUT請求,其中只傳遞可以編輯的數據。
如果出於任何情況下,你需要一些數據來往返式操作可以將它們放置到隱藏字段,並用散列使用2隱藏字段。你可以像(僞代碼)那樣得到散列:
ComputeSHA1(dataValue.ToString() + salt);
這個鹽是祕密值,只有你的應用程序知道。當數據往返於您的應用程序時,您將再次計算哈希(您必須使用相同的鹽)並將其與請求中存儲的哈希進行比較。如果這兩個不同,用戶試圖操縱那些隱藏的領域。
0
而不是實現您的基本模型的編輯操作使要編輯的所有字段,創建一個只包含與您想編輯的字段一個獨立的模型。此ViewModel方法更安全,避免了必須始終指定諸如白名單/黑名單方法之類的屬性列表的問題。
查看更多信息:How to Preserve/Protect Certain Fields in Edit in ASP.NET MVC
相關問題
- 1. 如何防止用戶修改表單上的某些字段?
- 2. 防止用戶輸入某些字符?
- 3. 防止某些字段被序列化
- 4. 爲ASP.NET MVC中的某些字段禁用客戶端驗證
- 5. ASP.NET MVC:忽略編輯時的字段
- 6. 防止用戶更改asp.net文本框中的某些文本
- 7. MVC 3,如何不顯示某些模型列進行編輯?
- 8. 如何隱藏Drupal中「用戶編輯」表單上的某些字段?
- 9. 逃避ASP.NET MVC模型屬性中的某些字符
- 10. ASP.NET MVC - 視圖編輯模型
- 11. Asp.net mvc計算字段編輯形式
- 12. 禁止某些模型字段的非空值
- 13. 防止用.NET中的PATCH覆蓋某些字段Azure Web API
- 14. 防止經驗編輯器在sitecore中編輯特定字段
- 15. 阻止用戶編輯Rails表中的某些列
- 16. 允許用戶僅編輯Ruby on Rails上的一些字段
- 17. 防止某些模型在Rails應用程序中使用Tire編入索引
- 18. 如何防止某些國家的用戶上傳?
- 19. MVC asp.net服務器端定時器,以防止用戶編輯定時器
- 20. ASP.NET:禁止某些Active Directory用戶
- 21. 模型的ASP.NET MVC可空字段
- 22. 停止編輯框中的某些鍵
- 23. 防止在模板中使用某些類型
- 24. 防止用戶在計算器中使用某些字符
- 25. 如何防止更新某些模型屬性?
- 26. 防止用戶編輯節點標題
- 27. 防止用戶編輯其他條目
- 28. ASP.NET MVC編輯器模板
- 29. 某些用戶編輯數據庫
- 30. 只允許某些用戶編輯ASPxGridView