2012-03-17 11 views
0

私は、ポストアクションメソッドを実装するプロのウェブサイトで、多くのサンプルとチュートリアルをObject オブジェクトをポストエディットに渡す場合のモデルバインディングのセキュリティを制御する方法asp.net mvcのアクションメソッド

[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を渡します関連するオブジェクトのプロパティを操作することから; ID、ナビゲーションプロパティ、またはcreatedbyなどのその他のプロパティ代わりに、私たちはアクションメソッド内で明示的なコードを使用してこれらの特定のプロパティを操作するだけで する必要があります。

しかし、モデルオブジェクトを渡すことによってポストアクションメソッドを実装する上記のアプローチは、バインドリストを定義することと競合するので、どのようにこのような状況を処理できますか?

答えて

0

Bind属性を使用すると、投稿されたモデルからこれらのプロパティのみを確実に更新できます。

+0

私は[Bind(Include = "Title、Description、genere")]を定義し、編集後のアクションメソッドにオブジェクトを渡すと、postアクションメソッドは例外を発生させますポストアクションメソッドは、オブジェクトIDとBindリストに含まれていない他のプロパティをバインドする必要があります。したがって、モデルオブジェクトをアクションメソッドに渡すと、バインドリストを定義することと競合します。だから私の質問は、アクションメソッドにオブジェクトを渡すことに加えてバインドリストを持つことによって、この競合を取り除くことが可能な場合でした。 BR –

+0

あなたは完全な例外を投稿できますか? Ta。 – SilverlightFox

関連する問題