Тег ASP.NET / MVC.NET для проверки ролей (эквивалент декларативного атрибута PrincipalPermission) - PullRequest
0 голосов
/ 05 апреля 2010

Я использую декларативные роли в моих контроллерах MVC.NET, и у меня есть пользовательский поставщик членства и ролей.

Это прекрасно работает:

 [Authorize(Roles = "ADMIN")]

Кроме того, у меня есть базовый класс MVC.NET CustomController, из которого происходят все контроллеры, и у него есть свойство «currentUser», которое автоматически выбирается из сеанса по требованию, поэтому весь код контроллера просто ссылается на «currentUser» и не беспокоится о сеансах, httpcontext и т. д. Я правильно реализовал поставщика членства, так как он работает с другими частями платформы, которая имеет дело только с поставщиками, но до сих пор я не пытался получить доступ к принципалу «Пользователь» из вид.

Какой самый простой синтаксис для проверки ролей на странице просмотра? Я знаю, что могу использовать помощника для создания частичного представления, но я не хочу этого здесь, я хочу явно обернуть некоторые разделы страницы в некоторые проверки ролей.

Примерно так:

<% if(currentUser.IsInRole("ADMIN") { %>
...
<% } %>

Спасибо.

1 Ответ

1 голос
/ 05 апреля 2010

Самый простой способ - сделать именно то, что вы делаете, проверяя текущего пользователя в контексте. Вы можете получить доступ к User принципалу на текущем HttpContext через свойство ViewContext ViewPage.

var currentUser = this.ViewContext.HttpContext.User;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...