2017-02-15 69 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你應該在這個自定義標籤中加入菜單標記,例如:'這個內容將根據當前用戶權限進行渲染 ' –