Asp.net-Mvc

ASP.NET MVC 5 基於使用者角色自定義引導導航欄

  • March 26, 2018

我正在使用 ASP.NET MVC 5 內置的身份驗證方法。我想根據使用者的角色顯示和隱藏連結(在菜單導航欄中)。

有沒有人做到這一點?

起點在哪裡?

只需將您的連結包裝在:

@if (User.IsInRole("SomeRole"))
{
   ...
}

您可以為此使用MvcSiteMap。它有一個名為 SecurityTrimming 的功能,它使用

$$ Authorize $$操作方法上的屬性來決定是否顯示菜單項。 我知道在答案中發布連結是不受歡迎的,但我發現這篇博文非常有用。

除了基於角色的菜單可見性之外,我還向 MvcSiteMapNodes 添加了自定義屬性以確定使用者可以訪問但我不想在菜單中顯示的連結的可見性(例如編輯頁面),我還添加了圖示屬性允許我使用引導菜單圖示,例如:

<mvcSiteMapNode title="Till" controller="Home" action="Index" area="Till" iconClass="icon-home" visibility="true">

我在那裡有點跑題了,但我只是想強調 MvcSiteMap 的靈活性。

引用自:https://stackoverflow.com/questions/22305497