Как вы ограничиваете определенные элементы HTML определенными ролями, используя ASP.NET MVC? - PullRequest
5 голосов
/ 22 ноября 2011

Я ищу стандартную практику указания, что определенный элемент HTML, например кнопка «Создать пользователя», должен отображаться только тогда, когда пользователь вошел в систему и принадлежит роли «Администратор».

Например, используя Spring MVC в Java, библиотека тегов Spring Security имеет элемент управления, который делает именно это:

<sec:authorize access="hasRole('ROLE_PRESIDENT')">
    <input type="button" value="Launch nuclear weapons"/>
</sec:authorize>

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

Есть ли в ASP.NET MVC такая функция?

Ответы [ 3 ]

4 голосов
/ 22 ноября 2011

Для движка просмотра Razor:

@if (User.IsInRole("ROLE_PRESIDENT")) {
    <input type="button" value="launch nuclear weapons" />
}

Для движка просмотра веб-форм:

<% if (User.IsInRole("ROLE_PRESIDENT")) { %>
    <input type="button" value="launch nuclear weapons" />
<% } %>
3 голосов
/ 22 ноября 2011

Если вам нужна защита на уровне элементов на вашем сайте, я предлагаю вам создать custom HtmlHelpers для каждого элемента, который реализует ваши правила безопасности для рендеринга.

Примечание: упаковка if операторов с проверками ролей во всех ваших представлениях не будет поддерживаться

0 голосов
/ 22 ноября 2011

@ If User.IsInRole ("Администратор"). То, что закончится, если

, что-то вроде должно работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...