Как назначить роли пользователя и скрыть кнопки от пользователей, которые не в роли, asp.net - PullRequest
0 голосов
/ 15 ноября 2011

Я знаю, что есть много статей о ролях и авторизации, но мне нужно что-то другое, и я пока не могу ничего найти .. Я работаю над веб-приложением, встроенным в ASP.NET, 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 ]

2 голосов
/ 15 ноября 2011

В 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

При назначении пользователей ролям вы можете использовать встроенный инструмент конфигурации ASP.NET вVisual Studio, или вы можете создать свой собственный код / ​​пользовательский интерфейс для управления этим.

2 голосов
/ 15 ноября 2011

Самая простая идея - разместить 2 кнопки администратора для разделения Panel и скрыть их на стороне сервера:

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

Или просто спрятать кнопки:

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

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

...