как включить и отключить кнопку на основе роли пользователя?

#asp.net #button #roles

#asp.net #кнопка #роли

Вопрос:

У меня есть роль под названием «участник» и другая «администратор» в Asp.Net веб-сайт.

Я делал это раньше, эта кнопка должна быть видимой или нет, и я преуспел в этом, но я не могу получить правильный код (aspx.cs) для отключения кнопки, чтобы она могла быть видна, но вообще недоступна.

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

я хочу, чтобы всякий раз, когда участник входит в систему, кнопка «отчет» должна быть отключена для него.

Комментарии:

1. почему я не могу ответить на этот вопрос, есть проблема со мной или вопрос :/

Ответ №1:

Вы должны установить Button.Enabled значение свойства в соответствии с HttpContext.Current.User.IsInRole("admin") значением, возвращаемым функцией.

Либо в html:

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

Или в коде за:

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

Комментарии:

1. спасибо, это сделано. У меня нет слов, чтобы объяснить, насколько этот сайт повышает мою уверенность. Еще раз спасибо

Ответ №2:

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

Комментарии:

1. 1: Это действительно должно быть сделано в коде позади. Это можно сделать на стороне html, но на самом деле нет смысла делать это таким образом. Это еще менее читабельно / поддерживаемо IMO.

Ответ №3:

В Page_Load после проверки роли вы можете установить значение IsEnabled для кнопки равным False.

например, buttonLogin.Включено = (IsUserInRole (администратор));

Ответ №4:

Либо я что-то упускаю, либо решение просто:

 button.Enabled = false;
  

Комментарии:

1. кнопка должна быть включена для администратора, не являющегося участником. как это сделать?

Ответ №5:

Я предполагаю, что вы используете ASP.NET управление кнопками — если да, то вам нужно установить для Visible и Enabled свойств кнопки значение false

Комментарии:

1. кнопка должна быть включена для администратора, не являющегося участником. как это сделать?

Ответ №6:

Основная проблема, с которой вы сталкиваетесь здесь, — это хэш-метка: <%# используется для идентификации привязки. Если вы не вызываете это в gridview или formview или что-то еще, это не сработает. Я бы рекомендовал установить ее в коде, как предложил @Muhammad Akhtar, но если вы одержимы использованием HTML-кода, вероятно, это должно быть:

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