私はこの質問をどこに置くかわからない、小売業者、製造業者、および顧客サポート(小売業者および製造業者がアクセスできるすべての情報にアクセスすることができる)である。次に、「製品リストを表示」と呼ばれるアクションメソッドを持つ製品コントローラがあるとしましょう。今では小売業者は自分のウェブサイト上の製品しか見ることができず、メーカーも可能であるが、顧客サポートは製造業者および小売業者のリストを閲覧し、どの製品を閲覧したいかを選択することができる。このコードがすべて同じアクションメソッド "製品リストを見る"にあるとします。今これは良い習慣ですか? 3種類のユーザーのすべてのコードを同じアクション方法で使用するには? 2番目に、ログインシステムとロールで構築されたmvcを使用していると仮定して、ユーザーのタイプに基づいてアクションメソッド内でどのコードを実行する必要があるかを判断します。どのようなタイプのユーザーがコントローラ - mvcのアクションメソッドコードにアクセスしているかを調べるにはどうすればいいですか?C#
1
A
答えて
0
(1)1つのアクションメソッドでこれを使用しても問題ありません。新しいロールが追加された場合、新しいアクションメソッドを作成したくないです。
(2)
If User.IsInRole("CustomerSupport") { ... }
また、メソッド内の役割のみがアクセスできるようにアクションメソッドをロックダウンすることも考えてください。これを達成するには、[Authorize]属性を使用します。例えば。
[Authorize(Roles = "Retailer, Manufacturer, CustomerSupport")]
0
私の考えでは、3つのタイプのユーザーすべてに対して同じ操作を行っても問題ありません。あなたが望むものを達成するにはいくつかの方法があります。例えば、依存性注入を見てください。リポジトリメソッド(データを呼び出す責任を負う)を型ごとに異なるものにしたいとします(ファクトリパターンを使用して、さまざまなタイプのユーザーに異なるリポジトリクラスを生成し、それをデータを取得するクラスに注入することができます)。
0
あなたの行動はアクセスポイントです。あなたはそれぞれの役割に対して異なる行動を取るべきではありません。あなたは30の役割を持っているとどうなりますか?あなたは30の行動を取るでしょうか?
コントローラはアクセスポイントだけなので、ユーザーはURLにナビゲートし、適切なアクションメソッドにルーティングされ、ユーザーは適切なビジネスロジックにユーザーを誘導する必要があります。行動を起こすことが許可されているかどうかを判断する必要があるのは、ビジネスロジックです。 MVCはあなたのプレゼンテーションだけですので、近い将来に別のプレゼンテーションレイヤーを使用する可能性はありますか?
関連する問題
- 1. msiがタイムスタンプされているかどうかを調べるにはどうすればよいですか?
- 2. コンポーネントがどのパネルに属しているかを調べるにはどうすればいいですか?
- 3. 数字が等しいかどうかを調べるにはどうすればいいですか
- 4. ユーザーが管理者ページにアクセスしないようにするにはどうすればよいですか?
- 5. z3_astが節に対応するかどうかを調べるにはどうすればよいですか?
- 6. VSCode 1.14.2を取得してファイルのタイプを調べるにはどうすればよいですか?
- 7. コントロールがタブコントロール上にあるかどうかを調べるにはどうすればよいですか?
- 8. コントローラのエイリアス値にアクセスするにはどうすればよいですか?
- 9. MySQL:どの行の値が大きいかを調べるにはどうすればよいですか?
- 10. クラスにDataContract属性があるかどうかを調べるにはどうすればいいですか?
- 11. NetBeansでどのようにメモリリークを調べるにはどうすればいいですか?
- 12. ユーザーがVBAにアクセスできないようにするにはどうすればよいですか?
- 13. ユーザーがphpMyAdminログインページにアクセスできないようにするにはどうすればよいですか?
- 14. 異なるタイプのオブジェクトを持つmapView.annotations配列を調べるにはどうすればいいですか?
- 15. ユーザーがデフォルト引数の値を指定しているかどうかを調べるにはどうすればよいですか?
- 16. Flash 9:ストリーミングトラックがモノであるかどうかを調べるにはどうすればよいですか?
- 17. argvがcharで終わるかどうかを調べるにはどうすればいいですか?
- 18. どのSMSが配信されていないか、または送信されていないか調べるにはどうすればよいですか?
- 19. GPSを使用してユーザーの歩行速度を調べるにはどうすればよいですか?
- 20. WPFアプリケーションでフォーカスがどこにあるのかを調べるにはどうすればいいですか?
- 21. Okta APIを使用してユーザーがグループのメンバーであるかどうかを効率的に調べるにはどうすればよいですか?
- 22. Rubyオブジェクトのメソッドを調べるにはどうすればよいですか?
- 23. Chromeプラグインのソースコードを調べるにはどうすればよいですか?
- 24. ウィジェットのToplevelコンテナを調べるにはどうすればよいですか?
- 25. オブジェクトにユーザー名とパスワードが含まれているかどうかを調べるにはどうすればよいですか?
- 26. 要素がテキストかどうかをPDFで調べるにはどうすればよいですか?
- 27. 特定の日付が現在の週に属しているかどうかを調べるにはどうすればよいでしょうか?
- 28. タッチイベントがどのビューで終了したかを調べるにはどうすればよいですか?
- 29. クロージャがバインドされているオブジェクトのクラス名を調べるにはどうすればよいですか?
- 30. 隠しHashMap.Baseタイプを調べるにはどうしたらいいですか?