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

  • 相关阅读:
    LayoutInflater作用及使用
    android中共享全局数据的方法
    http-关于application/x-www-form-urlencoded等字符编码的解释说明
    如何使用V7包中ActionBar(Eclipse版)
    Android Studio如何集成Genymotion
    Andriod Studio科普篇——4.关于编译的常见问题
    Gradle Android最新自动化编译脚本教程
    gradle 2.1构建android出现错误的解决方案
    Eclipse搭建Gradle环境
    eclipse下gradle配置
  • 原文地址:https://www.cnblogs.com/xsj1989/p/9887941.html
Copyright © 2011-2022 走看看