zoukankan      html  css  js  c++  java
  • ABP框架 配置权限、本地语言文件、左侧菜单项

    1.Framework.Core》Authorization》PermissionNames.cs 这里新增权限项

    namespace Framework.Authorization
    {
        public static class PermissionNames
        {
            public const string Pages_Tenants = "Pages.Tenants";
            public const string Pages_Users = "Pages.Users";
            public const string Pages_Roles = "Pages.Roles";
    
            /// <summary>
            /// 产品-浏览
            /// </summary>
            public const string Pages_Products = "Pages.Products";
            /// <summary>
            /// 产品-编辑
            /// </summary>
            public const string Pages_Products_Edit = "Pages.Products.Edit";
            /// <summary>
            /// 产品-删除
            /// </summary>
            public const string Pages_Products_Delete = "Pages.Products.Delete";
        }
    }

    2.Framework.Core》Authorization》FrameworkAuthorizationProvider.cs 这里创建权限,这样在页面中添加角色的时候才能显示出来

    using Abp.Authorization;
    using Abp.Localization;
    using Abp.MultiTenancy;
    
    namespace Framework.Authorization
    {
        public class FrameworkAuthorizationProvider : AuthorizationProvider
        {
            public override void SetPermissions(IPermissionDefinitionContext context)
            {
                context.CreatePermission(PermissionNames.Pages_Users, L("Users"));
                context.CreatePermission(PermissionNames.Pages_Roles, L("Roles"));
                context.CreatePermission(PermissionNames.Pages_Tenants, L("Tenants"), multiTenancySides: MultiTenancySides.Host);
    
                #region 创建权限
                var per = context.CreatePermission(PermissionNames.Pages_Products, L("Products"));
                per.CreateChildPermission(PermissionNames.Pages_Products_Edit, L("EditProducts"));
                per.CreateChildPermission(PermissionNames.Pages_Products_Delete, L("DeleteProducts"));
                #endregion
    
            }
    
            private static ILocalizableString L(string name)
            {
                return new LocalizableString(name, FrameworkConsts.LocalizationSourceName);
            }
        }
    }

    3.其中 Products、EditProducts、DeleteProducts 需要配置本地语言包文件:Framework.Core》Localization》Source》Framework-zh-CN.xml 这是中文的。

            <!-- 自定义 -->
            <text name="Roles" value="角色" />
            <text name="Products" value="商品" />
            <text name="EditProducts" value="编辑商品" />
            <text name="DeleteProducts" value="删除商品" />    

    4.左侧菜单 Framework.Web》App_Start》FrameworkNavigationProvider.cs

    requiresAuthentication: true 需要登录;requiredPermissionName: PermissionNames.Pages_Products 需要权限

    注册菜单在:Framework.Web》App_Start》FrameworkWebModule.cs 的 public override void PreInitialize(){...}里

    5.配置Action需要授权,在Action上面加上特性:[AbpAuthorize(PermissionNames.Pages_Products_Delete)]
    或者在Action里使用 PermissionChecker,
    PermissionChecker.IsGranted(PermissionNames.Pages_Products_Delete) 返回true或者false,
    PermissionChecker.Authorize(PermissionNames.Pages_Products_Delete) 如果没有授权,会抛出异常。
    AbpMvcAuthorize

    哈哈哈哈,啊哈哈哈哈,我看到了成功的曙光!

    参考:https://www.cnblogs.com/defzhu/p/4843292.html

    https://www.cnblogs.com/kid1412/p/6006297.html

    https://www.cnblogs.com/wendj/p/6812942.html

  • 相关阅读:
    分工的好处
    这是真正的随笔,无论形式还是内容。。。
    javascript 检查函数传入的实参个数和期待的形参个数是否相同的方法
    JS中比较难记的函数
    3.0 Basic Usage of Class
    0.0 Visual Studio
    2.0 Exercise of Basic Statements
    5.0 String And RegularExpressions.
    1.0 HelloWorld
    dell mini9 fluxbox 声卡的安装 和 屏幕分辨率和刷新率的调节
  • 原文地址:https://www.cnblogs.com/xsj1989/p/9887941.html
Copyright © 2011-2022 走看看