私は、懸念の分離を可能な限り強く保つために努力しているアプリケーションに取り組んでいます。われわれは、セキュリティの横断的関心事がいくつかの合併症を生み出すことを見出している。AOPとセキュリティをUI要素に適用する
しかし、これらは属性とアスペクト指向プログラミングを使用して緩和できるようです。
ドメインレイヤーのコードに側面を適用する限りはわかりますが、UIエレメントに適用する場合はどうすればよいですか?たとえば、ユーザーがその機能を実行する権限を持っていないときにボタンを表示したくない場合はどうすればよいですか?私たちのMVCアプリケーションで
、この時点で、我々は書く必要があるだろう(擬似コードは以下の):
<% if (user.CanSeeSomeData) { <%=Html.TextBox("MyTextBox") } %>
しかし、我々は、可能な場合は、属性ラAOPとの表示を制御したいと思います。
アイデア?
また、役に立つと思われるサードパーティのオープンソースツールがある場合は、これらの提案を歓迎します。
応答のために感謝、graffic。したがって、属性のアプローチはOKですが、Conroller/ViewModelで行う必要がありますか、またはifステートメントを実行する方法であることを伝えていますか?[「ビューは必ず」] * – jlembke
また、 ViewModelでこれをどのように達成しますか?プロパティに属性を付けることはできますが、フォームアイテムを表示/非表示/無効にすることはできません。あなたはコントロールを隠すことはしないで、ViewModel/Controllerのアクセス違反を処理するべきではないと言っていますか? – jlembke