答えて
私はそれを意味のあるところに置くことに投票します。私の認可品のほとんどは、AuthorizeAttribute(またはそれから派生した属性)を使用してコントローラーアクション(または一部のコントローラー)を装飾することによって処理されます。私のメニューのようないくつかのケースでは、各コントローラで計算し、フラグをViewDataに渡すのではなく、ビューのコード自体に権限チェックを入れることに頼っていました。モデルの特定の側面が特定のロールでのみ使用可能な場合がいくつかあります。その場合、私は、現在のユーザーとロールをとり、そこでチェックを行う方法でモデルを拡張することに頼っています。
M、V、またはCのいずれかを選択する必要がある場合は、Cが正しい場所です。しかし、私はあなたのアプリがすべてライブラリに含まれているアーキテクチャをお勧めします。UIは単なる薄いベニアです。あなたはコントローラからスタックを呼び出すことになりますが、コードはコントローラ内にありません。
MVCでは、モデルは単なるモデルであるか、または「ダムデータオブジェクト」です。状態を保持するように設計されており、動作を指示するべきではありません。このビューは、ユーザが対話するためのものであり、「ダム(dumb)」である。ビューはUIを処理します。コントローラはビヘイビアがどこにあるか、またはアプリケーションロジックがライブラリにある場合のビヘイビアへの入り口です。理にかなっている?
モデル。
コントローラは、さまざまな方法で切り替えるためのものです。表示は表示用です。
したがって、Modelレイヤーですべての認証コードを作成する必要があります。理想的には、すべて正常に動作します。そうでない場合、コントローラはユーザを適切なログインボックスに連れて行きます。
私は認証はクロスカッティングの問題だと思います。必要な場所に宣言的に適用できる1つの場所に配置する必要があります。
コントローラ!
あなたのビューは、ユーザーインターフェイスと表示のみを処理する必要があります。 モデルはシステムのデータを表す必要があります。 コントローラは、システムの仕組みのロジックを処理する必要があります。
ユーザーを認可するには、ビューから提供された資格証明を取得し、モデル内の何らかの種類の権限リストと照合してチェックを実行する必要があります。
これは、コントローラで行われます。 (モデル内のユーザーのリストと比較すると、マッチを返した場合)ビュー からユーザーの資格情報を取得します は、ユーザーに 他 ごみアクセス
- 1. ラックミドルウェアファイルをレール3に入れる場所はどこですか?
- 2. Facebook認証でセッションが始まる場所はどこですか?
- 3. Guava EventBus:GUIアプリケーションに入れる場所はどこですか?
- 4. コメントを記入する場所はどこですか?
- 5. これらのコードをRails Webアプリケーションに入れる場所はどこですか?
- 6. asp.net mvcレイアウトロジックの最適な場所はどこですか
- 7. このコードで乱数を生成する場所はどこですか?
- 8. Googleコード:ドキュメントを置く場所はどこですか?
- 9. ここでは、ユーザーがasp.net mvcで認証されていることを確認する最も良い場所です
- 10. 認証モデルはどこでMVCフレームワークに適合しますか?
- 11. ASP.NETで認証チェックを行う場所
- 12. cPanelにnode.jsコードを入れる場所
- 13. 再利用コードを入れる場所
- 14. iOSコアの場所(コードを入れる場所)
- 15. これはGACの場所ですか?
- 16. コマンドの認証を確認する場所は?
- 17. コードレビューの前にコードを保存する場所はどこですか?
- 18. サービスレイヤプロジェクトにIOC(ninject)コードを配置する場所はどこですか?
- 19. ASP.NETフォーム認証Cookieを目的のiPhone/iPadアプリケーションに格納する場所はどこですか?
- 20. MVC 4認証されている場合はログインページからリダイレクト
- 21. ユーザー認証を傍受する場所
- 22. ユーザーを認証する場所 - ゲームセンター
- 23. ソフトウェアでインターネット接続チェックのコードを書く場所はどこですか?
- 24. AJAXのPHPファイルをMVCアーキテクチャに入れる場所は?
- 25. javascriptでイベントハンドラを追加する場所はどこですか?
- 26. コードイグナイターでグローバルオブジェクトをインスタンス化する場所はどこですか?
- 27. gcloud認証ログインの認証コードはどこから来ますか?
- 28. 意見:このコードをdjango appに入れる場所:
- 29. フォーム認証テーブルの場所
- 30. Googleの場所のチェックインはどこで確認できますか?
を承認MVCのあなたの定義が間違っています。 MVCのMは最も重要な部分です。ダムのデータオブジェクトではありません。行動はMでなければなりません、これはあなたのビジネスロジックです。承認がビジネスロジックの一部であるかどうかは私には分かりません。 –