Asp.net mvc 3 如果在asp.net mvc中将对象传递给编辑后操作方法,如何控制模型绑定安全性
我在专业网站上找到了许多示例和教程,它们通过传递对象而不是传递对象ID来实现post-action方法,如下所示:-Asp.net mvc 3 如果在asp.net mvc中将对象传递给编辑后操作方法,如何控制模型绑定安全性,asp.net-mvc-3,security,Asp.net Mvc 3,Security,我在专业网站上找到了许多示例和教程,它们通过传递对象而不是传递对象ID来实现post-action方法,如下所示:- [HttpPost] public ActionResult Edit(Album album) { if (ModelState.IsValid) { db.Entry(album).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction(“Index”); } 但另一方面,出于安全考虑,
[HttpPost]
public ActionResult Edit(Album album)
{
if (ModelState.IsValid)
{
db.Entry(album).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction(“Index”);
}
但另一方面,出于安全考虑,建议在模型对象级别定义绑定列表,例如
[Bind(Include="Title,Description,genere")]
防止模型绑定操纵与对象相关的对象属性;ID、导航属性或其他属性,如createdby等,而我们只应
在我们的操作方法中使用显式代码操纵这些特定属性
但是上面通过传递模型对象来实现post-action方法的方法将与定义绑定列表冲突,因此我如何处理这种情况?您不需要处理任何情况,
Bind
属性将确保只能从发布的模型更新这些属性。感谢您的回复,但是当我定义[Bind(Include=“Title,Description,genre”)]并将对象传递给edit post action方法时,然后,post action方法将引发异常,因为post action方法需要绑定对象ID和绑定列表中未包含的其他属性!!!!因此,将模型对象传递给操作方法将与定义绑定列表冲突。因此,我的问题是,除了向action方法传递对象之外,是否可以通过添加绑定列表来消除此冲突。br请您发布完整的例外情况好吗?助教。