Как проверить текущую роль пользователя на странице Site.Master? - PullRequest
2 голосов
/ 15 октября 2010

Мне нужно написать меню в Site.Master, где определенные пункты меню должны быть видны или нет в зависимости от текущей роли пользователя. Как я могу проверить это со страницы? Обычно просто пишут логику в контроллере, но у Site.Master ее нет (по крайней мере, в моем проекте!). Буду признателен за любые указатели.

1 Ответ

5 голосов
/ 15 октября 2010

Использовать HttpContext.Current.User.

Это всегда будет видно из ваших просмотров / частичных просмотров / главных страниц.

Например, чтобы отобразить другой html для данной роли, скажем, MyRole, вы просто должны написать:

<% if(HttpContext.Current.User.IsInRole("MyRole")) { %>

    // tags for MyRole

<% } else { %>

    // tags for other users

<%} %>

Это нормально, поскольку это «логика отображения», которая принадлежит представлению (или главной странице), в отличие от «логики приложения», которая принадлежит контроллеру.

Обратите внимание, что представления - это просто шаблоны. Вы можете писать в них код, не мешая аккуратному шаблону MVC, при условии, что это только логика отображения.

Вид или главная страница не имеют контроллера. Это просто шаблоны, которые контроллер может найти и использовать.

...