Скрыть админские ссылки от всех - PullRequest
1 голос
/ 25 июля 2011

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

1 Ответ

1 голос
/ 25 июля 2011

Вы можете объявить логическое свойство для вашей модели представления:

public class MyViewModel
{
    public bool IsAdmin { get; set; }

    ... some other model properties
}

и внутри вашего взгляда:

@if (Model.IsAdmin)
{
    <!-- show the link that only administrators are supposed to see -->
    @Html.ActionLink("Do something very special", "Bar")
}

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

[Authorize]
public ActionResult Foo()
{
    var model = new MyViewModel
    {
        IsAdmin = User.IsInRole("Admin")
    };
    return View(model);
}

Очевидно, что действие Bar, которое могут вызывать только администраторы, должно быть также снабжено атрибутом Authorize:

[Authorize(Roles = "Admin")]
public ActionResult Bar()
{
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...