<bdo id="4g88a"><xmp id="4g88a">
  • <legend id="4g88a"><code id="4g88a"></code></legend>
    權限管理、用戶權限系統、開源用戶權限系統、信息化建設標準基礎數據管理平臺
    代碼改變世界

    C#.NET 大型通用信息化系統集成快速開發平臺 4.1 版本 - .NET商業化成品成熟各種數據權限的需求對應例子代碼

    2014-10-10 12:44  通用C#系統架構  閱讀(2843)  評論(2編輯  收藏  舉報

    還是我上次提出的那個問題
    問題:
    假設一個訂單表,
    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();
            }
        }
    }

     



    C# ASP.NET 通用權限設計、通用權限管理、通用權限組件、單點登錄、集中式權限管理、統一授權體系、分級管理分級授權


    微信掃一掃加好友



    免费视频精品一区二区_日韩一区二区三区精品_aaa在线观看免费完整版_世界一级真人片
    <bdo id="4g88a"><xmp id="4g88a">
  • <legend id="4g88a"><code id="4g88a"></code></legend>