UI 中未出现新菜单项
New menu item doesn't appear in UI
我正在使用 ASP.NET Boilerplate 的模块零。
我在Mpa
项目中的ProjectNameNavigationProvider
class中的SetNavigation
方法中在Role
菜单项之后添加了一个新的菜单项,但是它未出现在管理仪表板中。
我也在.Core
项目的Localization
文件夹中设置了text
/value
菜单项,但是问题没有解决。
ProjectNameNavigationProvider
Class和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);
我正在使用 ASP.NET Boilerplate 的模块零。
我在Mpa
项目中的ProjectNameNavigationProvider
class中的SetNavigation
方法中在Role
菜单项之后添加了一个新的菜单项,但是它未出现在管理仪表板中。
我也在.Core
项目的Localization
文件夹中设置了text
/value
菜单项,但是问题没有解决。
ProjectNameNavigationProvider
Class和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);