如何为不在角色的用户asp.net分配用户角色和隐藏按钮

时间:2011-11-15 12:39:38

标签: c# asp.net authentication roles

我知道很多关于角色和授权的文章,但我需要一些不同的东西,到目前为止我找不到任何东西。 我正在开发一个用ASP.NET构建的Web应用程序,C#后面和一个连接的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 个答案:

答案 0 :(得分:2)

最简单的想法是将2个管理员按钮分开Panel并将其隐藏在服务器端:

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

或者只是隐藏按钮本身:

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

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

答案 1 :(得分: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来管理它。

相关问题