ASP.NET Как вы динамически отказываете в доступе к роли - PullRequest
1 голос
/ 04 августа 2011

Я недавно начал пытаться использовать в своих веб-приложениях поставщиков членства и роли ASP.NET 4. Но у меня проблемы с внедрением хорошей методологии безопасности.

Я понимаю, что с помощью файлов web.config мы можем ограничить или запретить доступ к определенным aspx-файлам, но есть ли какие-либо хорошие способы запретить доступ к определенной роли при определенных обстоятельствах?

Например;

У нас есть страница с именем "EditUser.aspx".

У нас есть два типа пользователей; администраторы и обычные пользователи. Эта страница используется для редактирования обоих типов. Однако только администраторы могут редактировать других администраторов.

Каков наилучший способ запретить аутентифицированному пользователю без роли «admin» возможность редактировать администратора через EditUser.aspx?

Я надеюсь на что-то более элегантное, чем приведенное ниже:

if(editUser.IsInRole("admin") && !User.IsInRole("admin"))
{
    Respone.Redirect("SomeAccessDeniedPage.aspx");
}

Спасибо

Phil

1 Ответ

0 голосов
/ 04 августа 2011

Следует учесть одну вещь - использовать серверный элемент управления LoginView с элементом RoleGroups. Может быть, связать пользователей с правами администратора в отдельном виде сетки и обернуть его в виде LoginView, установленном для отображения только пользователям в роли администратора.

...