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