CSFramework软件开发框架 - 使用扩展角色实现自定义权限控制
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、使用扩展角色实现
首先,在《角色管理》添加一个新的角色,不需要勾选菜单权限:
添加 【TestRoleExt】 角色后,在《用户管理》界面分配给用户 【Test】
在应用窗体的 Form_Load事件,判断角色权限
C# 全选
private void frmProduct_Load(object sender, EventArgs e)
{
this.InitializeForm();
//方式1.判断当前用户是否有[TestRoleExt]角色
//var hasRole = new bllPermission().IsUserBelongRole(Loginer.CurrentUser.Account, "TestRoleExt");
//方式2.判断当前用户是否有[TestRoleExt]角色
var hasRole = Loginer.CurrentUser.Roles.Contains("TestRoleExt");
//各种应用场景
txtProductCodeAuto.Enabled = hasRole;
txtBatchNo.Enabled = hasRole;
colBarcode.Visible= hasRole;
//没有权限,删除列
if (!hasRole)
{
gvSummary.Columns.Remove(colDensity);
}
}
测试:使用【Test】用户登录
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网