2011-11-15 18 views
0

役割と権限についての記事がたくさんあることは知っていますが、私は別のものが必要です。 私は、ASP.NET、C#の背後に構築されたWebアプリケーションとMySQLデータベースに接続しています。役割に属していないユーザーからユーザー役割と非表示ボタンを割り当てる方法

どこかだけの簡単なチェックですので、私は必要なもの(web.confまたはDefault.aspx.cs、私は知らない)

if user "admin" (i.e inRole="admins") -> give permissions to everything 
if user normalUser1 (i.e inRole = "users) -> HIDE 2 buttons 

ので、彼らはそれらをクリックすることができません。

: 管理者は、あなたが任意のアイデアを持っている場合は多分ボタンのそれの自己に

を隠し、ボタンのアップロード]をクリックし、[アップロード]をクリックするか、削除することはできません ユーザーの後ろにデータベースにアクセスする削除することができます。

答えて

2

この機能を可能にするasp.net内の組み込みコントロールです。

<asp:LoginView>のコントロールを確認してください。これにより、指定したロールに応じて、ユーザーが認証されているかどうかによって、特定のコントロールを表示/非表示にすることができます。

以下のリンクをご覧ください。彼らはそれを使用する方法を記述します。

http://msdn.microsoft.com/en-us/library/ms178329.aspx#the_loginview_control

http://weblogs.asp.net/sukumarraju/archive/2010/07/28/role-based-authorization-using-loginview-control.aspx

役割にユーザーを割り当てることで、あなたは、Visual Studio内ASP.NET設定ツールで構築を使用するか、これを管理するための独自のコード/ UIを作成することができます。

+0

偉大な..第2のものは私が探していたものでした。 ありがとうございます:) – Pepys

+0

あなたは大歓迎です:) –

+0

もうちょっと質問があります。 これは素晴らしいことですが、内部のボタンは1つだけです。 FileUploadコントロールとアップロードボタン自体をLoginView内に追加しようとすると、FileUploadの名前がわかりません。かなりわかります これらのボタンにもう1つのLoginViewを使用することを検討する必要がありますか? – Pepys

2

最も簡単なアイデアがPanelを分離し、サーバー側でそれを隠すために2つの管理者用ボタンを配置することです:

adminFunctionalityPanel.Visible = User.IsInRole("Admins"); 

それとも、ボタン自体を隠す:

あり
btnDelete.Visible = btnUpload.Visible = User.IsInRole("Admins"); 

http://www.asp.net/security/tutorials/role-based-authorization-cs

+0

2番目のオプションはもっと簡単です...もしそれが単純なら - 私はあなたを祝福します:) これをaspx.csページに追加しますか? – Pepys