C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - .NET商业化成品成熟各种数据权限的需求对应例子代码

还是我上次提出的那个问题
问题:
假设一个订单表,
1.角色A可以看自己的
2.角色B可以看工作组的
3.角色C可以看金额是1000元以下的(自定义条件是否可行?如果可以,请详细说明)
4.角色D可以看整个部门的
5.角色E可以看整个分公司的
6.角色F可以看各分子公司的

参考代码如下:代码量会非常小,而且根本不需要写6个函数的,其实就按钮3的方法其实可以同时满足6个需求的

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace DotNet.Example
{
    using DotNet.WinForm;
    using DotNet.Utilities;
    using DotNet.Business;

    public partial class FrmByPermission : BaseForm
    {
        public FrmByPermission()
        {
            InitializeComponent();
        }

        /*
            问题:假设一个订单表,角色A可以看自己的,角色B可以看工作组的,
            角色C可以看金额是1000元以下的(自定义条件是否可行?如果可以,请详细说明),角色D可以看整个部门的,
            角色E可以看整个分公司的,角色F可以看各分子公司的,这该怎么做,还有怎样配置,谢谢。
             */

        private void btnGetUser1_Click(object sender, EventArgs e)
        {
            // 1: 定义几个操作权限、谁有什么操作来控制,数据权限。
            // 2: 系统里总有一个地方需要硬编码,例如 查看全公司的人员档案的权限。
            // 3: 权限编码,用中文还是用英文,其实是一样的,主要看目标人群是什么, “AllCompany”权限 == “全公司”权限
            // 4: 在上面的权限限制的基础上,继续+了条件表达式的2次限制权限

            // 保存用户的设置
            BaseParameterManager parameterManager = new BaseParameterManager();
            parameterManager.SetParameter("User", this.UserInfo.Id, "Score", this.txtScore.Text);

            // 读取用户的积分条件设置
            string score = parameterManager.GetParameter("User", this.UserInfo.Id, "Score");

            string whereConditional = BaseUserEntity.FieldScore + "<= " + score;
            BaseUserManager userManager = new BaseUserManager(this.UserInfo);
            this.drgUser.DataSource = userManager.GetUserByPermission(whereConditional);
        }

        private void btnGetUser2_Click(object sender, EventArgs e)
        {
            // 1: 在某个角色,就当是有相应的权限。
            // 2: 有个角色就叫“全公司”数据查看的角色,例如“AllCompany”
            // 3: 角色名称,用英文、用中文是一样的。
            // 4: 在上面的权限限制的基础上,继续+了条件表达式的2次限制权限

            // 保存用户的设置
            BaseParameterManager parameterManager = new BaseParameterManager();
            parameterManager.SetParameter("User", this.UserInfo.Id, "Score", this.txtScore.Text);

            // 读取用户的积分条件设置
            string score = parameterManager.GetParameter("User", this.UserInfo.Id, "Score");

            string whereConditional = BaseUserEntity.FieldScore + "<= " + score;
            BaseUserManager userManager = new BaseUserManager(this.UserInfo);
            this.drgUser.DataSource = userManager.GetUserByRolePermission(whereConditional);
        }

        private void btnGetUser21_Click(object sender, EventArgs e)
        {
            // 角色A可以看自己的
            BaseUserManager userManager = new BaseUserManager(this.UserInfo);
            this.drgUser.DataSource = userManager.GetUserByRolePermission();
        }

        private void btnGetUser22_Click(object sender, EventArgs e)
        {
            // 角色B可以看工作组的
            BaseUserManager userManager = new BaseUserManager(this.UserInfo);
            this.drgUser.DataSource = userManager.GetUserByRolePermission();
        }

        private void btnGetUser23_Click(object sender, EventArgs e)
        {
            // 角色C可以看金额是1000元以下的(自定义条件是否可行?如果可以,请详细说明)

            // 保存用户的设置
            BaseParameterManager parameterManager = new BaseParameterManager();
            parameterManager.SetParameter("User", this.UserInfo.Id, "Score", this.txtScore.Text);

            // 读取用户的积分条件设置
            string score = parameterManager.GetParameter("User", this.UserInfo.Id, "Score");

            string whereConditional = BaseUserEntity.FieldScore + "<= " + score;
            BaseUserManager userManager = new BaseUserManager(this.UserInfo);
            this.drgUser.DataSource = userManager.GetUserByRolePermission(whereConditional);
        }

        private void btnGetUser24_Click(object sender, EventArgs e)
        {
            // 角色D可以看整个部门
            BaseUserManager userManager = new BaseUserManager(this.UserInfo);
            this.drgUser.DataSource = userManager.GetUserByRolePermission();
        }

        private void btnGetUser25_Click(object sender, EventArgs e)
        {
            // 角色E可以看整个分公司
            BaseUserManager userManager = new BaseUserManager(this.UserInfo);
            this.drgUser.DataSource = userManager.GetUserByRolePermission();
        }

        private void btnGetUser26_Click(object sender, EventArgs e)
        {
            // 角色F可以看各分子公司
            BaseUserManager userManager = new BaseUserManager(this.UserInfo);
            this.drgUser.DataSource = userManager.GetUserByRolePermission();
        }
    }
}
时间: 2024-11-09 04:20:46

C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - .NET商业化成品成熟各种数据权限的需求对应例子代码的相关文章

C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 主管可以看下属的数据

主管可以看下属的数据,这个是经常用到的一个权限,不管是大公司,还是小公司都需要的功能. 通过以下2个方法,可以任意达到想要的效果了,设置简单灵活,还能递归运算下属,有时候简单好用就是硬道理. #region public List<BaseUserEntity> public List<BaseUserEntity> GetListByManager(BaseUserInfo userInfo, string managerId) 按上级主管获取下属用户列表 /// <sum

C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 大数据支持分表优化

公司的短信平台,数据量越来越大了,需要对数据进行一些优化,下面是拆分后的数据库量参考. 新开发的软件模块,必须支持分表,拆表的功能一个数据表里,不适合保存1000万以上的记录新开发的业务模块,能分表的全分表,否则,将来我们无法用其他小型数据库,例如mysql 现在系统的短信已经进行了拆表接着打算把日志也进行拆表确保数据库里,没有庞大的表,随时可以切换数据库 每个人把自己负责的事情,做到自己能力的及至,做到部门能力的及至,公司能力的及至,就很有希望了有时候我说话很随意,但是一般会注意,我说出去的话

C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 区域管理功能增强(电子商务方向)

由于公司是面向全国服务的.全国各地都有分公司,需要管理到覆盖全国的各种业务,各种业务系统信息系统的数据都需要规范化. 公司开展网络订单功能,在全国范围内实现网络下单.提高工作效率,提高各公司之间的数据交换效率,承接订单的效率,防止沟通交流中的出错率. 通用权限管理系统组件已经实现了内置的电子商务基础数据管理功能,提供各种接口调用,为快速开发大型电子商务系统做个稳定的基础. C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 区域管理功能增强(电子商务方向),布布扣,bubuko.

C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 数据权限增强、范围权限增强

并不是不想做B\S的管理工具,只是精力实在不够,由于用户权限管理组件是基础组件.所以C\S的也无妨,不会有几个人在乎Oracle,SQLServer是否不b\s的,注重的是功能性能,请大家不要纠结与是否B\S还是C\S上. 实现的方法.设计的界面.数据库结构的设计.底层DLL方法的函数调用,都可以参考,毕竟自己全部实现一个,耗费太多精力,不如拿过来用用参考,按自己的需要修改几下就可以用了,省心省事省力,腰不疼腿不酸,没必要浪费生命. 由于公司的组织机构庞大.网点非常多,所以数据权限的设置也非常复

C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 忘记密码功能改进、手机短信、电子邮件

由于我们的系统接近有100000个用户账户,经常会有忘记密码的时候,用户多了,很小的一个功能,每天都会有很多人在用,每个功能都非常友善,会提高提系统的效率,提高用户体验. 一天最多能返回3次手机短信,找回密码,防止黑客攻击.当然也可以增加安全性,需要输入用户名才可以获取密码.

C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 &ndash; 员工离职管理

C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 – 员工离职管理 当公司有几万人,上千家加盟网点,几个庞大的直属分公司后,系统账户的有效管理也是一个头疼的问题,把所有的帐户及时进行科学的管理,有人员离职时及时进行记录,防止离职人员的系统账户有各种安全漏洞.   谁什么时间操作了什么帐户?都进行了什么备注?什么时间阻止了帐户的登录系统的权限?是否有多个人需要处理人员离职后的各种操作?后勤.IT.财务.人事?是否经过了确认?是否方便协调各个部门的操作?   每个子公司?网点?总部的管

C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 几十套业务系统集中统一授权管理实现经验分享

由于这几年互联网电商的快速发展,快递公司也进入了快速发展的绝好快速成长期.随着社会的强劲需求公司的业绩年年攀新高.快速发展的公司都需要有强大的IT信息系统,硬件设备基本上款到了货也可以到了,但是软件系统就不是那么简单了,需要长期的维护完善才能平稳运行. 公司有几十套业务系统需要快速开发.开发队伍的建设.软件系统的建设.基础平台的建设都堆在了一起,由于我们用了成熟的通用快速开发平台,所有的用户都能集中统一授权.所有的业务系统都有统一的管理后台配置管理,几乎很多精力都放在业务模块的开发上就可以了.

C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 大型软件系统客户端数据同步的问题解决

作为一个完整的整体信息化解决方案需要有足够强大的各种功能,这些功能相对独立,又互相依存.当有需要这样的功能时可以随时拿出来用,适当修改一下就可以满足要求.只有这样才能快速开发各种信息化系统,才能满足各种客户的需求. 同步数据需要解决的问题主要有: 01:全国性大型集团公司的信息化改造项目会涉及到非常多的分公司网点的客户端需要同步数据的各种需求,这个已经超越了人工能处理好的极限.02:网点非常多时,往往由于业务的特殊性会有能离线作业的需要,网络故障.网络带宽不理想时都可以进行离线处理的工作流程需要

C#.NET 大型企业信息化系统集成快速开发平台 4.1 版本 - 面向数据库SQL语句的应用开发一

我的梦想是给大家提供一个工具.可以用他来提高工作效率.就像战争上,你有一个得心应手的武器一个道理.  给大家一个性能良好的信息化武器,就是我的梦想. 有一个朋友来信息如下: 我就是企业维护信息的,也不大编程,懂点吧,但是也忘得差不多.最近看了点书,微软的,java的,我感觉自己数据库语句还行,持久层也就是固定套路,但是控制和表现没有些积累就不大好弄了,比较见功力,特别是表现层,技术也杂.粗略认识吧,我就想做点信息系统,台账之类,你的程序能帮到我吗,有详细说明吗? 我们有充分的例子程序,模板程序,