#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() %>'