2017-02-15 42 views
1

我来自asp.net 2.0 webforms;在那里我只是在Web.sitemap中定义我的菜单,所有的修剪都要小心。安全修剪应用程序菜单

对于这个看似简单的任务,asp.net-core-mvc中是否有任何等同的功能?

+0

你可以为它创建一个自定义TagHelper。 –

+0

Sirwan ...我不明白这一点。任何网站/样品在这? –

回答

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你应该在这个自定义标签中加入菜单标记,例如:'这个内容将根据当前用户权限进行渲染 ' –