CSFramework软件开发框架 | 使用扩展角色实现自定义权限控制|C/S开发框架
作者:csframework|C/S框架网  发布日期:2024/11/11 13:29:04

CSFramework软件开发框架 | 使用扩展角色实现自定义权限控制|C/S开发框架

CSFramework软件开发框架 - 使用扩展角色实现自定义权限控制

用户需求

比如窗体有Panel,里面有多个文本输入框,需要根据用户的权限显示或隐藏文本输入框。

有3个解决方案

1、使用扩展权限实现

文档1:用户扩展权限,用户自定义权限 - 窗体自定义按钮权限控制

https://www.cscode.net/archive/newdoc/cs-210903193659899-71.html

文档2:特殊权限控制(扩展权限和自定义按钮功能)

https://www.cscode.net/archive/newdoc/cs-210903193505325-63.html

2、使用标准CRUD权限实现

C# 全选
private void frmPermissionTester_Load(object sender, EventArgs e)
{
  //
  //省略代码...
  //

  //使用标准权限<Edit权限> 控制Panel组件是否可编辑
   pnlPrivateData.Enable = this.ButtonAuthorized(ButtonAuthority.Edit);

   //使用查看权限,控制设备名称是否显示
   txtDeviceName.Visible = this.ButtonAuthorized(ButtonAuthority.View);
}

3、使用扩展角色实现

首先,在《角色管理》添加一个新的角色,不需要勾选菜单权限:

CSFramework软件开发框架 | 使用扩展角色实现自定义权限控制|C/S开发框架

添加 【TestRoleExt】 角色后,在《用户管理》界面分配给用户 【Test】

CSFramework软件开发框架 | 使用扩展角色实现自定义权限控制|C/S开发框架

在应用窗体的 Form_Load事件,判断角色权限

C# 全选
        private void frmProduct_Load(object sender, EventArgs e)
        {
            this.InitializeForm();

            //判断当前用户是否有[TestRoleExt]角色
            var hasRole = new bllPermission().IsUserBelongRole(Loginer.CurrentUser.Account, "TestRoleExt");

            //各种应用场景
            txtProductCodeAuto.Enabled = hasRole;
            txtBatchNo.Enabled = hasRole;   
            colBarcode.Visible= hasRole;
            
            //没有权限,删除列
            if (!hasRole)
            {
                gvSummary.Columns.Remove(colDensity);
            }
        }

测试:使用【Test】用户登录

CSFramework软件开发框架 | 使用扩展角色实现自定义权限控制|C/S开发框架

C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务
上一篇 下一篇