1

DDD/MVC は、ビューの永続性を無視し、その逆を維持するために、ドメイン エンティティとビュー レイヤーを分離しておくことを説明しています。DTO はこれを行う方法です。私は、彼を容易にする方法として AutoMapper を見てきました。ただし、私は最近EFと純粋なPOCOクラスを使い始めたので、永続的な無知なPOCOを直接マップするDTOは、実際には、あなたがDTO を使用します。POCO が純粋で永続性を無視している場合、単に DTO レイヤーをスキップするだけでは何が問題になるでしょうか?

ありがとう

ジェームス

4

2 に答える 2

1

留意しなければならないことの 1 つは、モデル バインダーについてです。モデルが同じ名前のプロパティを持つポストされたフィールドをバインドします。

この問題を明確にするために、次のようなユーザー モデルを使用していると想像してください。

public class User
{
    public int UserId { get; set; }
    public string login {get; set; }
    ...
    public bool admin { get; set; }
}

サインアップ ページでこのモデルを使用する場合、管理者用のフィールドを作成せず、scaffold を false に設定していても、悪意のあるユーザーが admin というフォーム フィールドを作成して true (チェックボックスのように) に設定することができます。あなたのページ。このフォームを投稿すると、受け取ったモデルでこのプロパティが true に設定され、ユーザーが管理者になります。

これが、偽造防止トークンとビュー モデルを使用してこのケースの作業を軽減する必要がある理由です。

于 2013-02-01T23:43:22.437 に答える