一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...


我们开发的权限程序也不是万能的,他只是通用的权限参考,可以给你提供很多可以调用的API等,若权限不能满足你个性化的需求,你可以进行二次开发,在二次开发时,可以调用很多现成的API函数,这样可以大大提高开发效率及保证程序的稳定性、严谨性等。

我们的宗旨是,只要学会用通用的权限配置程序把权限按自己的需要进行配置后,就可以通过简单的API函数调用就可以打到我们的最终目的,我们也对权限的实现细节没兴趣,也不想研究这些,对这个也没兴趣,甚至也没时间去学习这些,只是能用就可以了,开发人员把节省下来的时间更多的是用于理解客户的业务知识,实现客户的业务需求,把精力腾出来,用在学习上,用在客户关系处理上,用在家庭娱乐上,我们没必要每个人都从头做起,折腾很久,浪费很多精力在这个上,等有兴趣学习权限时再来做权限的二次开发等,研究源码等。

我们系统里的数据集合权限,主要由2种功能实现,首先是对 用户直接设置数据集权限,其次是对角色设置数据集权限,再把用户归属与某些角色。

数据权限,我们分为:以下7种。

1 一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...        All,             //  全部数据
2 一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...         UserCompany,     //  用户所在公司数据
3 一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...         UserDepartment,  //  用户所在部门数据
4 一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...         UserWorkgroup,   //  用户所在工作组数据
5 一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...         User,            //  自己的数据
6 一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...         None,            //  没有权限
7 一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...         Detail           //  按详细设定的数据

直接看下图,
对哪个用户,对什么权限,对哪些数据有相应的权限?
这里权限范围是为了快速设置权 限,方便客户设置的。
下面的是 按明细设置权限范围时用的,例如,对某些部门,对某些人有相应的权限。

一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...

需要注意的是,这里的数据集权限的不同,可能会导致权限范围的不同,例如我可以看全公司的客户数据,
但是我只能编辑自己部门的客户数据,那这就是需要2个数据集权限了。
查看客户资料的数据集权限:所有数据。
修改客户资料的数据集权限:所在部门。

程序开发调用方法:
1。能获得当前用户的权限范围设置。
A.例如提供,当前有某个权限数据集权限的 用户对 哪些组织机构,哪些角色,哪些用户?
B.例如提供,当前又某个权限数据集权限的 全部数据?用户所在公司数据?用户所在部门数据?用户所在工作组数据?自己的数据?没有权限?按详细设定的数据?
C.例如提供:当前用户的 公司主键?部门主键?公司主键?主键?
结合以上的参数,可以明确计算出,用户到底应该能查看、管理哪一部份数据等。
            this.UserInfo.ID 
            this.UserInfo.Code
            this.UserInfo.StaffID
            this.UserInfo.IsAdministrator
            this.UserInfo.CompanyID
            this.UserInfo.DepartmentID
            this.UserInfo.WorkgroupID


2。可以获得相应的Sting[] IDs。
 1 一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...         /**/ /// <summary>
 2一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...        /// 获得用户的某个权限范围资源代码数组
 3一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...        /// </summary>
 4一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...        /// <param name="userID">用户</param>
 5一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...        /// <param name="resourceCategory">资源分类</param>
 6一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...        /// <param name="permissionCode">权限</param>
 7一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...        /// <returns>代码数组</returns>

 8 一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...         public  String[] GetResourceScopeIDs(String userID, String resourceCategory, String permissionCode)
 9 一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...         一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解... {
10一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            BasePermissionAdminDao permissionAdminDao = new BasePermissionAdminDao(this.DbHelper, this.UserInfo);
11一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            String permissionID = permissionAdminDao.FindID(BasePermissionTable.FieldCode, permissionCode);
12一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...
13一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            BaseUserDao userDao = new BaseUserDao(this.DbHelper, this.UserInfo);
14一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            String defaultRole = userDao.GetProperty(userID, BaseUserTable.FieldRole);
15一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...
16一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            String sqlQuery = String.Empty;
17一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            sqlQuery =  
18一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                      // 用户的权限
19一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                          " SELECT Base_ResourcePermissionScope.TargetID "
20一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                        + "   FROM Base_ResourcePermissionScope "
21一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                        + "  WHERE (Base_ResourcePermissionScope.ResourceCategory = 'User') "
22一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                        + "        AND (Base_ResourcePermissionScope.ResourceID = '" + userID + "') "
23一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                        + "        AND (Base_ResourcePermissionScope.TargetCategory = '" + resourceCategory + "') "
24一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                        + "        AND (Base_ResourcePermissionScope.PermissionID = '" + permissionID + "') "
25一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                        + "        AND (Base_ResourcePermissionScope.Enabled = 1) "
26一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                      
27一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                        + " UNION "
28一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...               
29一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                      // 用户归属的角色的权限                            
30一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                        + " SELECT Base_ResourcePermissionScope.TargetID "
31一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                        + "   FROM Base_ResourcePermissionScope "
32一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                        + "  WHERE (Base_ResourcePermissionScope.ResourceCategory  = 'Role') "
33一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                        + "        AND (Base_ResourcePermissionScope.TargetCategory  = '" + resourceCategory + "') "
34一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                        + "        AND (Base_ResourcePermissionScope.PermissionID = '" + permissionID + "') "
35一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                        + "        AND (Base_ResourcePermissionScope.Enabled = 1) "
36一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                        + "        AND ((Base_ResourcePermissionScope.ResourceID IN ( "
37一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                        + "             SELECT Base_UserRole.RoleID "
38一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                        + "               FROM Base_UserRole "
39一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                        + "              WHERE (Base_UserRole.UserID  = '" + userID + "') "
40一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                        + "                  AND (Base_UserRole.Enabled = 1)) "
41一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                
42一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                       // 用户的默认角色
43一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                        + "              OR (Base_ResourcePermissionScope.ResourceID = '" + defaultRole + "'))" 
44一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                        + "";
45一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...
46一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            DataTable dataTable = new DataTable(BasePermissionTable.TableName);
47一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            this.DbHelper.Fill(dataTable, sqlQuery);
48一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            String[] resourceIDs = BaseBusinessLogic.FieldToArray(dataTable, BaseResourcePermissionScopeTable.FieldTargetID);
49一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            return resourceIDs;
50一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...        }


3。可以获得当前可拼接的SQL语句。


 1 一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...         /**/ /// <summary>
 2一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...        /// 按某个权限获取职员 Sql
 3一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...        /// </summary>
 4一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...        /// <param name="managerUserID">管理职员代码</param>
 5一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...        /// <param name="permissionCode">权限编号</param>
 6一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...        /// <returns>Sql</returns>

 7 一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...         public  String GetUserIDsSql(String managerUserID, String permissionCode)
 8 一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...         一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解... {
 9一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            BasePermissionAdminDao permissionAdminDao = new BasePermissionAdminDao(this.DbHelper);
10一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            String permissionID = permissionAdminDao.GetID(permissionCode);
11一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...
12一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            String sqlQuery = String.Empty;
13一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            
14一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            // 直接管理的职员
15一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            sqlQuery = " SELECT Base_ResourcePermissionScope.TargetID AS " + BaseBusinessLogic.FieldID
16一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                     + "   FROM Base_ResourcePermissionScope "
17一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                     + "  WHERE (Base_ResourcePermissionScope.TargetCategory = 'User'"
18一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                     + "        AND Base_ResourcePermissionScope.ResourceID = '" + managerUserID + "'"
19一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                     + "        AND Base_ResourcePermissionScope.ResourceCategory = 'User'"
20一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                     + "        AND Base_ResourcePermissionScope.PermissionID = '" + permissionID + "'"
21一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                     + "        AND Base_ResourcePermissionScope.TargetID IS NOT NULL) ";
22一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...
23一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            // 被管理部门的列表
24一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            String[] departmentIDs = this.GetOrganizeIDs(managerUserID, permissionCode);
25一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            if (departmentIDs.Length > 0)
26一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...{
27一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                String departments = BaseBusinessLogic.ObjectsToList(departmentIDs);
28一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                if (!String.IsNullOrEmpty(departments))
29一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...{
30一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                    // 被管理的组织机构包含的职员
31一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                    sqlQuery += " UNION "
32一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                             + " SELECT " + BaseStaffTable.TableName + "." + BaseStaffTable.FieldID + " AS " + BaseBusinessLogic.FieldID
33一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                             + "   FROM " + BaseStaffTable.TableName
34一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                             + "  WHERE " + BaseStaffTable.TableName + "." + BaseStaffTable.FieldDepartmentID + " IN (" + departments + "";
35一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                }

36一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            }
            
37一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...
38一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            // 被管理部门的列表
39一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            String[] roleIDs = this.GetRoleIDs(managerUserID, permissionCode);
40一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            if (roleIDs.Length > 0)
41一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...{
42一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                String roles = BaseBusinessLogic.ObjectsToList(roleIDs);
43一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                if (!String.IsNullOrEmpty(roles))
44一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...{
45一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                    // 被管理的角色包含的职员
46一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                    sqlQuery += " UNION "
47一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                             + " SELECT " + BaseUserRoleTable.TableName + "." + BaseUserRoleTable.FieldUserID + " AS " + BaseBusinessLogic.FieldID
48一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                             + "   FROM " + BaseUserRoleTable.TableName
49一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                             + "  WHERE " + BaseUserRoleTable.TableName + "." + BaseUserRoleTable.FieldEnabled + " = 1 "
50一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                             + "        AND " + BaseUserRoleTable.TableName + "." + BaseUserRoleTable.FieldRoleID + " IN (" + roles + "";
51一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...                }

52一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            }

53一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            
54一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...            return sqlQuery;
55一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...        }
以上数据没有考虑 SQL注入问题,因为我们信任这些ID参数,都是安全的,若这些ID数据是不安全的,必须要考虑SQL注入问题。

以上几个函数,只是象征性的,不是最终的函数,是为了表达,权限处理的相关函数还是蛮复杂的,可以通过生成ID数组、过滤的子SQL语句,及其他配套的调用函数,在自己的程序里可以调用,达到数据过滤的目的。

参考调用数据集权限过滤函数有
BaseResourcePermissionScopeDao.cs 中的
 1 一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...     /**/ ///     组织
 2一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...    ///      ↓
 3一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...    ///     角色 → 组织
 4一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...    ///      ↓
 5一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...    ///     用户
 6一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...    ///     
 7一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...    /// 
 8一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...    ///     用户能有某种权限的所有职员      public String[] GetUserIDs(String managerUserID, String permissionCode)
 9一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...    ///                                     public String GetUserIDsSql(String managerUserID, String permissionCode)
10一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...    ///     
11一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...    ///     用户能有某种权限所有组织机构    public String[] GetOrganizeIDs(String managerUserID, String permissionCode)
12一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...    ///                                     public String GetOrganizeIDsSql(String managerUserID, String permissionCode)
13一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...    ///     
14一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...    ///     用户能有某种权限的所有角色      public String[] GetRoleIDs(String managerUserID, String permissionCode)
15一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...    ///                                     public String GetRoleIDsSql(String managerUserID, String permissionCode)

16 一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解...


管理类软件里数据集权限处理的难点主要有:
1。部门下面有子部门,是递归的,对上级部门有权限,应该对子部门也有权限才对,这个关系应该是自动的。
2。用户可以管部门,角色也可以管部门。
3。用户是属于某些部门里的,能管部门,也能管下属的用户才对。
4。角色应当归属于某些部门才正确。
这些关系都理清楚,都调试好,需要一点儿技术含量才能搞定,当然权限函数能满足最复杂的应用才比较理想化一些。


导读:
疯狂.NET架构通用权限后台管理工具演示版2.0下载
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 如何控制用户显示的菜单权限
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 在页面中的调用权限讲解
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 分级管理
疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 操作权限
疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 角色权限
疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 数据集权限

淘宝店地址:
http://list.taobao.com/browse/0/n-8ddf3d8a90550373fa749337efe29f03---------------40--commend-0-all-0.htm






转载于:https://my.oschina.net/iwenr/blog/227771