Меню приложения с настройкой безопасности

Я пришел с веб-форм asp.net 2.0; где я просто определяю свое меню в Web.sitemap со всей обработкой.

Есть ли в asp.net-core-mvc аналогичная функция для этой, казалось бы, простой задачи?

1 ответ

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

public class SecurityTrimmingTagHelper : TagHelper
{
    [ViewContext]
    public ViewContext Context { get; set; }

    public override void Process(TagHelperContext context, TagHelperOutput output)
    {
        output.TagName = null;

        if (!Context.HttpContext.User.Identity.IsAuthenticated)
        {
            output.SuppressOutput();
        }

        if (Context.HttpContext.User.IsInRole("Admin"))
        {
            return;
        }

        output.SuppressOutput();
    }
}
Другие вопросы по тегам