如何根据用户角色启用和禁用按钮?

时间:2011-05-13 12:57:25

标签: asp.net button roles

我在Asp.Net网站上有一个名为'member'的角色和另一个'admin'。

我之前做过,那个按钮应该是可见的还是没有我在这方面很成功,但是,我无法获得正确的代码(aspx.cs)来禁用按钮,以便它可以在视图中而不是完全可以访问。

<asp:Button ID="Button4" runat="server" PostBackUrl="~/report.aspx" 
   Text="print in report format" Width="173px" 
   Enabled='<%# HttpContext.Current.User.IsInRole("Admin") %>' /> 

我希望无论何时成员登录,都应该禁用“报告”按钮。

6 个答案:

答案 0 :(得分:6)

if (HttpContext.Current.User.IsInRole("member"))
{
  //enable/disable here
}

答案 1 :(得分:6)

您必须根据Button.Enabled函数返回值设置HttpContext.Current.User.IsInRole("admin")属性值。

在html中:

<Button ... Enabled='<%# HttpContext.Current.User.IsInRole("Admin") %>' ... >

或代码背后:

Button.Enabled = HttpContext.Current.User.IsInRole("Admin");

答案 2 :(得分:3)

在检查角色后的Page_Load中,您可以将Button的IsEnabled设置为False。

e.g。 buttonLogin.Enabled =(IsUserInRole(Admin));

答案 3 :(得分:2)

要么我缺少某些东西,要么解决方案就是:

button.Enabled = false;

答案 4 :(得分:1)

我假设您使用的是ASP.NET按钮控件 - 如果您需要将VisibleEnabled按钮属性设置为false

答案 5 :(得分:1)

这里的主要问题是哈希标记:<%#用于标识绑定。除非你在gridview或formview或其他东西中调用它,否则这将无效。我建议按照@Muhammad Akhtar的建议在后面的代码中设置它,但是如果你在使用html方面你真的很喜欢皮革它应该是:

Enabled='<%= HttpContext.Current.User.IsInRole("Admin").ToString() %>'