Авторизация разделов представления в MVC - PullRequest
3 голосов
/ 26 марта 2010

Мне было интересно, можно ли авторизовать части вида внутри вида.

Например, я понимаю, как разрешить весь контроллер в этом методе

<HandleError()> _
Public Class HomeController
  Inherits System.Web.Mvc.Controller

  Function Index()
    Return View()
  End Function

  <Authorize(Roles:="Administrators")> _
  Function AdministratorSecrets()
    Return View()
  End Function

End Class

Но то, что я хотел бы сделать, это сделать так, чтобы, если администратор вошел в систему, они могли видеть дополнительные ссылки в моей навигации.

Что-то вроде

            <ul id="menu">              
                <li><%= Html.ActionLink("Home", "Index", "Home")%></li>
                <li><%= Html.ActionLink("About", "About", "Home")%></li>
                <Authorize(Roles:="Administrators")> _
                <li><%= Html.ActionLink("Admin", "Admin", "Home")%></li>
            </ul>

Очевидно, что это не сработает, но дает представление о том, чего я пытаюсь достичь.

Есть идеи?

Ответы [ 2 ]

4 голосов
/ 26 марта 2010

Используйте что-то вроде этого:

<% if(Roles.IsUserInRole("Administrator")){ %>
<span>HTML Code</span>
<% } %>
0 голосов
/ 29 октября 2010

Лучше всего отправлять if в новый метод расширения html helper.

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