2017-02-15 6 views
1

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

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

+0

Вы можете создать собственный TagHelper для него. –

+0

Сирван ... Я не понимаю этого ... Любой сайт/образцы на этом? –

ответ

0

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

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(); 
    } 
} 
+0

Привет, Sirwan ... Я помещаю это в представление, содержащее меню? Я новичок в mvc ... –

+0

@KMFong Вы должны поместить разметку меню внутри этого настраиваемого тега, например: '<защита-обрезка> Этот контент будет отображаться на основе текущего разрешения пользователя ' –