WinFramework轻量级开发框架 - 窗体权限机制


WinFramework轻量级框架权限系统

Winform开发框架快速开发框架 软件开发平台WinFramework轻量级框架  插件框架 原创软件@csframework.com

1. 窗体权限机制简介

WinFramework轻量级框架窗体权限采用逻辑运算“或/or“运算机制,功能权限值在 WinFramework.UI.Core.FunctionAuthority 中定义。

WinFramework.UI.Core.FunctionAuthorityCommon 设定了 WinFramework轻量级开发框架中默认已占用的公共权限值,若需要扩展权限,应该避免使用这些已定义的权限值。

 

2. 计算机编程布尔运算(逻辑运算)

 计算机编程布尔运算(逻辑运算)

逻辑运算通常用来测试真假值。最常见到的逻辑运算就是循环的处理,用来判断是否该离开循环或继续执行循环内的指令。

逻辑运算:在逻辑代数中,有与、或、非三种基本逻辑运算。表示逻辑运算的方法有多种,如语句描述、逻辑代数式、真值表、卡诺图等。

 

各种编程语言中的逻辑运算符

作用
C语言
Pascal
等于
==
=
不等于
!=
 
小于
  
大于
>
>
小于等于
  
大于等于
>=
>=
&&
and
||
or
!
not
异或
^
xor

 

运算规则

组合\结果\运算符.....And.......Or.........Xor
0......0.......................0..........0............0
1......0.......................0..........1............1
0......1.......................0..........1............1
1......1.......................1..........1............0
简单的说
And:同为真时为真
Or:同为假时为假
Xor:相同为假
 

3. 窗体权限定义 FormAuthority

 

重载 窗体属性CurrentAuthority,在 frmBaseData 基类窗体中定义的,功能窗体继承 frmBaseData 时,重写这个属性 CurrentAuthority 来定义窗体的权限

protectedoverrideint FormAuthority
{
    get
    {
        return base.CustomerAuthority;
    }
}

该属性默认为:

//当前窗体初始化的公共权限
protected override int FormAuthority
{
    get
    {
        return FunctionAuthorityCommon.ADD//新增
            + FunctionAuthorityCommon.EDIT//修改
            + FunctionAuthorityCommon.DELETE;//删除
                                             //+ FunctionAuthorityCommon.Save//保存
                                             //+ FunctionAuthorityCommon.Cancel;//取消
    }
}

 

可以使用的权限值:参考 WinFramework.UI.Core.FunctionAuthority 

属性名称权限值
NONE没有任何权限0
FVIEW
访问权限,每个窗体都应该有1
ADD新增2
DELETE删除4
EDIT修改8
SaveEx保存16
SaveAndCloseEx保存后关闭64
APPROVAL审核32
PREVIEW打印预览128
Export导出256
CancelEx返回/取消512
Refresh刷新1024
EX_01
扩展权限2048
EX_02
扩展权限4096
EX_03
扩展权限8192
EX_04
扩展权限16384
EX_05
扩展权限32768
EX_06
扩展权限65536
ALL所有权限1073741823

 

4. 设置权限名称

在frmBaseChild 基类窗体中使用 SetAuthorizeName 方法来设置权限名称,frmBaseChild 中提供一个虚拟函数 InitAuthorize(),会在构造器中调用这个函数。

/// <summary>
/// 构造函数
/// </summary>
public frmBaseChild()
{
    InitializeComponent();
    //if (CheckDesingModel.IsDesingMode()) return;
    if (this.isDesignTime) return;
    this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
    _Buttons = new RibbonBarButtonCollection();
    this.Load += frmChildBase_Load;
    this.InitAuthorize();
}

/// <summary>
/// 初始化权限
/// </summary>
protected virtual void InitAuthorize()
{
    SetAuthorizeName(FunctionAuthorityCommon.FVIEW, "查看");
}

因此我们只需要重构 frmBaseChild 中的 IniAuthorize() 方法,就能修改权限名称了

 

protected override void InitAuthorize()
{
	base.InitAuthorize();
	// 设置Ex01的权限名称
	SetAuthorizeName(FunctionAuthority.EX_01, "布局调整");
}

 

5. 取消窗体的查看权限(不展示窗体)

WinFramework.UI.Dev.LibForm.frmBaseChild 中默认会给权限增加一个公共权限值=1,FunctionAuthorityCommon.FVIEW 访问权限。

/// <summary>
/// 查看
/// </summary>
internal const int FVIEW = 1;

 

C# 全选
/// <summary>
/// 当前窗体权限
/// </summary>
protected virtual int FormAuthorityAll
{
    get
    {
        return FormAuthority | FunctionAuthorityCommon.FVIEW;
    }
}

 

最后,我们重写该属性:

protected override int FormAuthorityAll => this.FormAuthority;

 

 

版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
上一篇:C/S架构轻量级快速开发框架WinFramework-功能列表及模板窗体
下一篇:WinFramework轻量级开发框架 - 窗体操作状态
评论列表

发表评论

评论内容
昵称:
关联文章

WinFramework轻量级开发框架 - 权限机制
WinFramework轻量级开发框架 - 继承关系图详解
WinFramework轻量级开发框架 - 新建Winform业务数据
WinFramework轻量级开发框架 - 运行程序出现数据配置
WinFramework轻量级开发框架 - 自定义GridView表格样式布局
C/S架构轻量级快速开发框架WinFramework-功能列表及模板
WinFramework轻量级开发框架 - 主从表开发指南-详细二次开发
WinFramework轻量级开发框架 - 自定义功能按钮(InitButton/AddButton方法)
WinFramework轻量级开发框架 - Winform开发框架-模块功能注册与配置
WinFramework轻量级开发框架 - 单表数据开发 - 界面二次开发
WinFramework轻量级开发框架 - 主从表开发指南-采购订单
C/S架构轻量级快速开发框架WinFramework架构图
WinFramework轻量级开发框架 - 单表数据字典开发指南
WinFramework轻量级开发框架 - 界面扩展按钮-自定义按钮
WinFramework轻量级开发框架 - 参数设置
C/S架构轻量级快速开发框架 - WinFramework核心优势
WinFramework轻量级开发框架 - 开发报表打印功能
WinFramework轻量级开发框架 - 代码生成器(CodeGenerator)简介
WinFramework轻量级开发框架 - 公共字典数据扩展
WinFramework轻量级开发框架 - 功能按钮事件详解