2016-10-19 4 views
0

.netフレームワークバージョン4.0でasp.netを使用しています。ロールに基づいてasp.netコントロールの編集可能な状態を動的に管理する方法

テキストボックス、ドロップダウンリストチェックボックスなどの複数の入力/選択コントロールがあるページがあります。このページにはさまざまな種類のユーザーがアクセスでき、ユーザーの種類に基づいてページの各コントロールを編集アクセス用に構成できますこの要件を達成するために、すべてのコントロールID、ユーザータイプ、アクセス可能な権限(有効/無効)をデータベーステーブルに格納しています。 page_loadでは、設定テーブルからデータを取得し、ページ上の各コントロールを見つけてenabledプロパティを設定します。

このアプローチはこれまでのところ働いていましたが、私はasp.netの他の可能な機能やinbuiltの機能と一緒に扱いたいと思っています。

答えて

0

コントロールIDの格納は、UIと密接に関連しています。私は個人的にコントロールIDの代わりにデータベースに機能を保存するのが好きです。

主な理由は、新しい機能が追加されたときに、機能に基づいてのUI (コントロールの追加または削除)を変更するだけです。後でASP.Net MVCやUWAなどの異なるUIに移行する必要がある場合は、簡単に変換できます。

たとえば、次のようにデータベースに格納します。

UserId | Insert | Update | Delete 
--------------------------------- 
    1 | True | True | False 
    2 | False | False | False 

Webフォームでは、Panelコントロールを使用して、この機能に基づいて複数のコントロールを表示または非表示にすることができます。

+0

ありがとうございます、私の関心事は挿入更新または削除操作ではありません。これはすでにトップレベルの順序で実装されています。ユーザーは特定のユーザーまたはユーザータイプに与えられた特定のアクセス許可に基づいてデータを入力できます。例えば、私たちは40の入力コントロールを持っていますが、いくつかのユーザー/ユーザーグループが25のコントロールでしかデータを入力することはできません。 –

+0

Insert、Update Deleteは仮想的な例です。ボトムラインは良いデザインではないコントロールIDを格納しません。代わりに、AllowPurchase *などの機能*を保存したいとします。次に、***パネル***を非表示にします。 *後でMVCに移行すると、Panelを** PartialView **。*に簡単に置き換えることができます。 – Win

関連する問題