UI 中未出现新菜单项

New menu item doesn't appear in UI

我正在使用 ASP.NET Boilerplate 的模块零。

我在Mpa项目中的ProjectNameNavigationProviderclass中的SetNavigation方法中在Role菜单项之后添加了一个新的菜单项,但是它未出现在管理仪表板中。

我也在.Core项目的Localization文件夹中设置了text/value菜单项,但是问题没有解决。

ProjectNameNavigationProviderClass和SetNavigation方法

public override void SetNavigation(INavigationProviderContext context)
            {
                context.Manager.MainMenu
                    .AddItem(
                        new MenuItemDefinition(
                            PageNames.Home,
                            L("HomePage"),
                            url: "",
                            icon: "home",
                            requiresAuthentication: true
                        )
                    ).AddItem(
                        new MenuItemDefinition(
                            PageNames.Tenants,
                            L("Tenants"),
                            url: "Tenants",
                            icon: "business",
                            requiredPermissionName: PermissionNames.Pages_Tenants
                        )
                    ).AddItem(
                        new MenuItemDefinition(
                            PageNames.Users,
                            L("Users"),
                            url: "Users",
                            icon: "people",
                            requiredPermissionName: PermissionNames.Pages_Users
                        )
                    ).AddItem(
                        new MenuItemDefinition(
                            PageNames.Roles,
                            L("Roles"),
                            url: "Roles",
                            icon: "local_offer",
                            requiredPermissionName: PermissionNames.Pages_Roles
                        )
                    )
                    .AddItem(
                        new MenuItemDefinition(
                            PageNames.News,
                            L("News"),
                            url: "News",
                            icon: "fa-newspaper-o",
                            requiredPermissionName: PermissionNames.Pages_News
                        )
                    )
                    .AddItem(
                        new MenuItemDefinition(
                            PageNames.About,
                            L("About"),
                            url: "About",
                            icon: "info"
                        )

你能帮帮我吗?

由于您将菜单项的 requiredPermissionName 设置为 PermissionNames.Pages_News,您需要为用户分配该权限才能在 UI 中查看该菜单项。

您可以将权限分配给用户拥有的 Role,或直接分配给用户。

您必须检查权限的多租户端。可以将权限分配给租户所有者或租户。检查您是否设置了此标志。这很重要。

MultiTenancySides:对于多租户应用,一个权限可以被租户使用,也可以被房东使用。这是一个 Flags 枚举,因此双方都可以使用权限。

相关文档:https://aspnetboilerplate.com/Pages/Documents/Authorization 用法示例:

context.CreateChildPermission(PermissionNames.Pages_News, L("News"), multiTenancySides: MultiTenancySides.Tenant);