how to enable and disable button based on user rol

2019-02-18 08:39发布

I have a role called 'member' and another 'admin' in Asp.Net website.

I did before, that button should be visible or not and i am successful in that,but,i am not able to get the proper code(aspx.cs) to disable the button so that it may be in view but not at all accessible.

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

i want that whenever a member login then button "report" should be disabled for him.

6条回答
淡お忘
2楼-- · 2019-02-18 09:20

You have to set the Button.Enabled property value to according to the HttpContext.Current.User.IsInRole("admin") function returned value.

Either in html:

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

Or in code behind:

Button.Enabled = HttpContext.Current.User.IsInRole("Admin");
查看更多
三岁会撩人
3楼-- · 2019-02-18 09:23
if (HttpContext.Current.User.IsInRole("member"))
{
  //enable/disable here
}
查看更多
来,给爷笑一个
4楼-- · 2019-02-18 09:23

I'm assuming you are using an ASP.NET button control - if you are then you need to set the Visible and Enabled button properties to false

查看更多
一纸荒年 Trace。
5楼-- · 2019-02-18 09:23

The primary problem you have here is the hash mark: <%# is used to identify a binding. Unless you're calling this in a gridview or a formview or something, this will not work. I would recommend setting it in the code behind as suggested by @Muhammad Akhtar, but if you're hell bent for leather on using the html side it should probably be:

Enabled='<%= HttpContext.Current.User.IsInRole("Admin").ToString() %>'
查看更多
成全新的幸福
6楼-- · 2019-02-18 09:26

Either I'm missing something or the solution is simply:

button.Enabled = false;
查看更多
兄弟一词,经得起流年.
7楼-- · 2019-02-18 09:33

In the Page_Load after checking for the role you may be able to set the IsEnabled for the Button to be False.

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

查看更多
登录 后发表回答