5

私は最近MVCアプローチを使い始めたばかりなので、これはあなたにとって簡単な方法だと思います。

アクセス制御はどこに置きますか?

  1. ビューで?テンプレートにスイッチとフラグ以外のロジックを含めたくないので、実行可能なオプションのように聞こえます
  2. モデルでは?各ビジネスオブジェクトは、誰が質問しているかに基づいて、それ自体についてどのデータを明らかにするかを決定する必要がありますか?
  3. コントローラーで?それが今私が持っているところですが、ビジネスルールの一貫性を保つのが難しくなっています

または別のオプションはありますか?

4

2 に答える 2

5

これは、使用しているフレームワークによって異なり、言語によって、使用できるツールの多くが決まります。

大まかに言えば、エントリポイントでアクセスセキュリティを構成する必要があります。また、自律的であると見なされるか、アプリケーションの複数の部分から再利用される可能性があるすべてのレベルでアクセスセキュリティを再確認する必要があります(セキュリティがロジックレイヤーを使用する同僚のポータルによってチェックされたかどうかを誰が知っていますか?など)。もう1つ心配するのは、データのセキュリティです。これは、データに可能な限り近いものです(つまり、上記の#2には当てはまりますが、別のものであることを理解してください)。

これは、私が話したいアプリケーションロジックとドメインロジックの違いに似ています。1つの特定のアプリケーション(Windowsサービスと比較したWebアプリなど)に固有のロジックがある場合、そのロジックはそのアプリケーションでのみ定義する必要があります。一部のロジックがアプリケーション間の境界を越える場合(アプリケーション間で再利用可能)、そのロジックはドメインロジックとして適格であり、モデルで定義する必要があります。アプリケーションはドメインロジックを利用できますが、それを所有するべきではありません。

于 2008-11-15T21:23:30.543 に答える