- PR -

ロールによって表示内容や利用できる機能を変えたい

1
投稿者投稿内容
未記入
常連さん
会議室デビュー日: 2007/08/21
投稿数: 48
投稿日時: 2007-08-24 09:52
VS2005(VB)でWebサイトを作っています。

データ表示画面など、ロールによって表示する内容を変えたり、利用できる機能(参照のみ or 更新可能)を変えたいのですが、このような時、セキュリティトリミングのような便利な機能はありますか?
(セキュリティトリミングでロールごとにメニューを変えることはできるようになりました)

これだけでは範囲が広過ぎると思いますので、もう少し条件を絞りますと

例えばロールにadminとuserがあるとしてGridViewでデータの一覧表示画面を作成するとして

1.adminロールではデータ(例えば電話番号)をすべて表示するが、userロールでは*で一部マスクしたい
2.adminロールではデータ(例えばパスワード)を表示するが、userロールではパスワード欄そのものを無くしたい
3.adminロールではデータ(例えば氏名)を更新用画面へのリンクにするが、userロールではデータを表示するだけにしたい

上記を実現する場合に、1は具体的な方法はわかりませんが、コードビハインド?で実現できそうな気がします。

GridViewでの実現可否と可能な場合のやり方をヒントだけでも教えてください
よろしくお願いします。
かめたろ
ぬし
会議室デビュー日: 2003/03/20
投稿数: 255
投稿日時: 2007-08-27 12:26
まず、現在Webサイトにログオンしているユーザーが特定のロールに属しているかどうかは、GenericPrincipalまたはWindowsPrincipalのIsInRoleメソッドで調査できます。GenericPrincipalとWindowsPrincipalのどちらを使うかは、ログオンの認証方法によります。

あとは、IsInRoleの結果によってGridViewに列非表示などの細工をすればよいかと思います。または、admin用user用それぞれのユーザーコントロールを用意しておいてロールによって表示を切り替えるとか、ページそのものを別にしてweb.configでロールセキュリティをコントロールするとか、やり方はいろいろあると思います。
1

スキルアップ/キャリアアップ(JOB@IT)