在 Bootstrap 示例项目中,如何根据角色有条件地显示菜单项?我考虑采取以下步骤:
1. 实现INavigatonRouteFilter - 只需实现shouldRemove(Route navigationRoutes)方法 - 通过获取路由的默认控制器/操作并查看用户是否获得授权来实现。 2. 在配置NavigationRoutes后调用NavigationRoutes.Filters.Add(myAuthorizationFilter)。
这种方法存在两个问题:
1. 除非添加一堆有条件的语句来检查Controller的名称,否则我不知道如何执行第一步。 2. 如果有很多过滤器或以后需要更多的模块化,似乎这样做会使 NavigationRoutes.Filters 很难处理。
如果可能的话,我想使用Bootstrap示例中提供的内容来实现基于授权的导航菜单显示。使用INavigationRouteFilter似乎是最自然的方式。
1. 实现INavigatonRouteFilter - 只需实现shouldRemove(Route navigationRoutes)方法 - 通过获取路由的默认控制器/操作并查看用户是否获得授权来实现。 2. 在配置NavigationRoutes后调用NavigationRoutes.Filters.Add(myAuthorizationFilter)。
这种方法存在两个问题:
1. 除非添加一堆有条件的语句来检查Controller的名称,否则我不知道如何执行第一步。 2. 如果有很多过滤器或以后需要更多的模块化,似乎这样做会使 NavigationRoutes.Filters 很难处理。
如果可能的话,我想使用Bootstrap示例中提供的内容来实现基于授权的导航菜单显示。使用INavigationRouteFilter似乎是最自然的方式。