.net通用权限设计源码

经过一年多的设计编码和测试,公司通用权限系统对业务部门提供了比较稳定、便捷和灵活的支撑。

该系统分为两部分:配置界面和WCF服务。

界面:权限系统管理员可以通过配置界面的方式对各部门或者组织机构的人员进行业务权限分配操作。

WCF服务:业务开发人员可以通过权限系统提供的接口服务,获取业务权限数据,对业务系统进行开发。

该设计的好处就是权限系统的可移植性更高,权限系统可以单独部署,发布对外的服务接口即可,和业务系统之间耦合性更低,从而达到设计模式的核心价值高内聚,低耦合。

IIS部署示例如下:

权限系统开发环境:

开发工具:Microsoft Visual Studio 2012(2010)中文旗舰版

数据库:  Sql server2008\2012(Oracle)

框架:Spring.net+NHibernate+MVC

系统功能:

1、  组织机构:用户维护页面主要用来对系统组织结构进行管理。进入页面后左侧树桩菜单显示已有组织机构以及层级结构,点击某级节点的组织机构名称。右侧显示组织机构的详细信息,以及该组织机构下的所属用户。如图:

2、  用户维护:用户维护页面主要用来对系统用户进行管理。进入页面后按登录用户的权限显示全部可见用户,分页显示。同时可按照组织机构、真实姓名、登录名三种条件进行模糊筛选。

用户授权:对所选用户进行角色授权,一个用户可以选择多个角色进行授权,如图:

3、应用维护:应用维护页面主要用来对系统子应用(系统或者应用)的相关信息进行管理。

进入页面后按登录用户的权限显示全部可见应用,分页显示,以表格形式展示。

4、角色维护:角色维护页面主要用来对系统角色进行管理。进入页面后按登录用户的权限显示全部可见角色,分页显示。同时可按照所属应用、角色编码两种条件进行模糊筛选。(角色与应用为多对一关系,每个角色只能属于一个应用)

页面授权:对某个角色进行页面授权控制,勾选上的页面菜单为该角色授权菜单,如图:

数据授权:对系统原子数据进行管理和授权操作,如图:

5、用户授权:用户授权,是用来将以赋予权限的一些系列角色,授予某个用户。使该用户具有这些权限。页面分为左边用户区,和右边归属角色区。

用户可通过页签切换,实现按组织机构进行过滤筛选后选择具体用户,也可实现为某个组织机构下所有用户授予某些角色的功能

6、页面维护: 页面维护主要用来对每个应用下的子页面以及页面间的层级关系进行管理。对子系统的菜单和页面进行管理和赋值页面地址,用户根据角色授权管理页面是否可见或者访问其地址。

7、页面资源维护:用户资源维护主要用来对每个页面内的页面资源以及资源间的层级关系进行管理。(页面上的每一个控件都称为一个资源)后台用户可以根据该页面上的资源对其进一步管理,比如页面可以对某个用户在该页面上只可以查询不可以更改的管理。

8、权限查询:用来查询具体某个用户下,某个角色的,对应类型的权限

WCF服务接口:

  • 用户登录验证接口

形式:

UpUsersComm LoginVerify(string userId, string passWord);

描述:

用户进行登录验证。

传入参数:

UserId:用户登陆ID。

PassWord:登录密码。

返回值:

UpUsersComm自定义类型,存有用户信息

  • 获取应用权限信息

形式:

UpUsersComm GetSystemPermission (string userId);

描述:

根据当前用户ID,获取用户所具有的访问业务系统模块的权限。

传入参数:

UserId:用户Id。字符串类型。

返回值:

UpUsersComm,存有用户所能访问的系统应用模块集合。

  • 获取可访问页面的权限

形式:

UpUsersComm GetPagePermission(string userId, long systemIdentifierId)

描述:

根据当前用户Id,获取用户所能访问具体哪些页面,返回页面表的映射对象,并带有级联关系,业务模块能自行形成树状结构。

传入参数:

UserId:用户名。字符串类型。

SystemIdentifierid:系统表示Id。字符串类型。

返回值:

UpUsersComm,存有用户所能访问的页面对象的集合。

  • 获取可访问页面的权限

形式:

UpUsersComm GetPagePermission(string userId, string systemIdentifierName)

描述:

根据当前用户Id,获取用户所能访问具体哪些页面,返回页面表的映射对象,并带有级联关系,业务模块能自行形成树状结构。

传入参数:

UserId:用户名。字符串类型。

systemIdentifierName:应用系统名称。字符串类型。

返回值:

UpUsersComm,存有用户所能访问的页面对象的集合。

  • 获取可访问页面资源的权限

形式:

UpUsersComm GetPageSourcePermission(string userId, string systemIdentifierName, string pageName);

描述:

根据当前用户Id、应用系统名称和页面名称,获取用户所能访问具体页面的资源,返回页面资源集合。

传入参数:

UserId:用户名。字符串类型。

systemIdentifierName:应用系统名称。字符串类型。

pageName:页面名称

返回值:

UpUsersComm,存有用户所能访问的页面资源对象的集合。

  • 获取可访问页面资源的权限

形式:

UpUsersComm GetPageSourcePermission(string userId, long pageId);

描述:

根据当前用户Id和页面ID,获取用户所能访问具体页面的资源,返回页面资源集合。

传入参数:

UserId:用户名。字符串类型。

pageId: 页面ID。字符串类型。

返回值:

UpUsersComm,存有用户所能访问的页面资源对象的集合。

  • 获取原始数据的权限

形式:

UpUsersComm GeDataPermission(string userId, string systemIdentifierName, string dataCategoryName)

描述:

根据当前用户Id、应用系统名称和数据类别名称,获取用户所能访问原始数据资源,返回原始数据集合。

传入参数:

UserId:用户名。字符串类型。

systemIdentifierName:应用系统名称。字符串类型。

dataCategoryName:原始数据类别名称。字符串类型。

返回值:

UpUsersComm,存有用户所能访问的原始数据集合。

  • 获取原始数据的权限

形式:

UpUsersComm GeDataPermission(string userId, long dataCategoryId)

描述:

根据当前用户Id和数据类别ID,获取用户所能访问原始数据资源,返回原始数据集合。

传入参数:

UserId:用户名。字符串类型。

dataCategoryId:数据类别ID。长整型。

返回值:

UpUsersComm,存有用户所能访问的原始数据集合。

  • 获取原始数据的权限

形式:

UpUsersComm GetDeniedDataPermission(string userId, string systemIdentifierName, string dataCategoryName)

描述:

根据当前用户Id、应用系统名称和原始数据名称,获取用户所能访问原始数据类型为1资源,返回原始数据集合。

传入参数:

UserId:用户名。字符串类型。

systemIdentifierName:应用系统名称。字符串类型。

dataCategoryName:数据类别名称。字符串类型。

返回值:

UpUsersComm,存有用户所能访问的原始数据类型为1的数据集合。

  • 分页获取原始数据的权限

形式:

UpUsersComm GeDataPermissionByPage(string userId, string systemIdentifierName, string dataCategoryName,int pageSize, int pageIndex)

描述:

根据当前用户Id、应用系统名称和原始数据名称,分页获取用户所能访问原始数据,返回当页原始数据集合。

传入参数:

UserId:用户名。字符串类型。

systemIdentifierName:应用系统名称。字符串类型。

dataCategoryName:数据类别名称。字符串类型。

pageSize:页面行数。整型。

pageIndex:页面索引。整型。

返回值:

UpUsersComm,存有用户所能访问的原始数据集合。

  • 根据菜单名称获取角色集合

形式:

UpUsersComm GetRolesByMenu(string menuName)

描述:

根据菜单名称,获取角色,返回角色集合。

传入参数:

menuName:菜单名称。字符串类型。

返回值:

UpUsersComm,存有角色集合。

  • 根据用户ID获取角色集合

形式:

IList<UpRoleComm> GetRoleWhitUserID(string userId)

描述:

根据用户ID,获取角色,返回角色集合。

传入参数:

userId:用户ID。字符串类型。

返回值:

IList<UpRoleComm>,存有用户所能访问的角色集合。

  • 根据用户ID获取用户信息

形式:

IList<UpRoleComm> GetRoleWhitUserID(string userId)

描述:

根据用户ID,获取用户信息,返回用户对象。

传入参数:

userId:用户ID。字符串类型。

返回值:

UpUsersComm,存有用户所能访问的用户信息。

 

  • 创建用户

形式:

void CreateUser(UpMQUserComm user);

描述:

创建用户。

传入参数:

UpMQUserComm:用户对象。

返回值:无

  • 修改用户

形式:

void UpdateUserInfo (UpUsers user);

描述:

修改用户信息。

传入参数:

UpUsers:用户对象。

返回值:无

  • 修改用户

形式:

void DeleteUser(string userId)

描述:

根据用户ID,删除用户信息。

传入参数:

userId:用户ID。

返回值:无

 

  • 判断是否为超级管理员

形式:

bool IsCaptain(string userId)

描述:

根据用户ID,判断该用户是否有超级管理员。

传入参数:

userId:用户ID。

返回值:TRUE/False

  • 根据数据类型名称获得数据类型ID

形式:

long GetDatatypeIDByName(string name)

描述:

根据数据类型名称,获取数据类型的名称。

传入参数:

name:数据类型名称。

返回值:int

 

  • 根据ID获取角色信息

形式:

UpRoleComm GetRoleById(long id)

描述:

根据ID获取角色信息。

传入参数:

id:角色ID。

返回值:

UpRoleComm,角色信息。

  • 根据用户ID获取角色信息

形式:

ArrayList GetRoleByUserId(string userId)

描述:

根据用户ID,获取角色集合。

传入参数:

userId:用户ID。

返回值:

ArrayList,角色信息集合。

  • 修改密码

形式:

int UpdatePassword(string userId,string pwd,string oldPwd)

描述:

修改用户密码,成功返回1,否则返回0。

传入参数:

userId:用户ID。

Pwd: 新密码。

oldPwd:旧密码

返回值:1/0

 

大概功能,先整理到这,有兴趣的qq:187386033

时间: 2024-10-30 05:30:36

.net通用权限设计源码的相关文章

java 企业通用权限项目源码

A 代码生成器(开发利器);  B 阿里数据库连接池druid; C 安全权限框架shiro ; D ehcache 自定义二级缓存  (后续会加入Activiti5 工作流 ) 系统为主流的 springmvc+mybaits 3.2 版本 ,提供maven的pom.xml文件,另免费赠送hibernate版本一套(垮数据库) 1. 有 oracle .msyql.spring3.0.spring4.0  一共 4 套版本全部提供没有打jar没有加密的源代码(最下面截图2.1版本) 2. 支持

通用OA+权限管理系统源码 联系QQ:847129860

通用OA+权限管理系统源码 功能介绍:    1.本程序分为系统后台管理,内网,论坛,外网,外网后台管理    2.开发工具为VS2010,MVC4(razor视图引擎),数据访问为EntityFramework4.4,数据库为sql server 2008,UI插件为jquery-easyui-1.3.0,编辑器为kindeditor,上传文件为uploadify,表格插件Flexigrid,相册插件为lightbox    3.工程分为:CommWeb,Core,DAL,Entity,Too

通用权限设计(springmvc + mybatis + ligerui)

最近一直在思考,如何设计一个毕业论文呢?后台就回想起自己以前大学做的项目,每次都需要开发一个后台网站,及其繁琐,后来就慢慢有了个想法,开发一个网站固件,可以动态配置,于是就动手设计了起来... 通用权限设计 每一个网站,都有着相似的后台界面,现在比较流行的DWZ.LIGERUI.EXTJS等js框架,都提供了相似的界面.同时,后台网站的安全也是非常重要的.那么,为了开发上的方便,很有必要将一个后台网站做成一个通用的网站固件.这样子带来的好处:可以动态配置后台网站,极大简便了重复造轮子的功夫. 主

Asp.Net MVC4+EF6 Code First 权限管理系统 源码下载

这个权限管理系统是基于在@TZHSWEET 的权限管理系统之上做的修改.@TZHSWEET 那个是DB first. 这个是Code First.源码下载:http://download.csdn.net/detail/wode551120/7280559 http://pan.baidu.com/s/1o6uM2Ae 具体设计思路请参考@TZHSWEET  文章. 项目运行: 1.修改web.config 数据库连接 2.修改Global.asax Application_start方法中.取

asp.net,java,jsp,安卓Android,苹果ios,php,vb.net,c#免费毕业课程设计源码共享网盘下载

百度网盘下载地址1:  http://pan.baidu.com/s/1o67fybC 百度网盘下载地址2: http://pan.baidu.com/s/1kTxckmF163网盘下载地址:http://home.163disk.com/shuangyulin file://E:\计算机设计参考!!!!!!!!!!!\资料 (4 folders, 0 files, 0 bytes, 641.25 MB in total.) ├─QQ254540457 (0 folders, 49 files,

计算机毕业课程设计源码打包下载

下载地址1: http://dl.vmall.com/c06pluqz6r 10个数据结构课程设计实例二...冒泡排序快速排序等.rar  下载  9.99K asp+sqlserver2000网络书店系统.rar  下载  1.4M asp+sqlserver2000在线考试系统.rar  下载  1.21M ASP+sql精品在线试题库设计+论文.rar  下载  2.7M asp.net+sql2008在线论坛系统.rar  下载  3.09M asp.net_sql2008公司人事管理系

通用权限设计

1.  可以跟角色给用户权限,用户权限字段存的数据格式为:ID_菜单英文名称; ID_菜单英文名称;……; ID_功能英文名称;……. 2.  用户登录时,权限存在session里: 3.  初始化菜单,判断用户权限是否存在该菜单,如果存在就出现,不存在就隐藏. 4.  页面功能java在拦截器了判断权限,PHP在同一入口了拦截,.net就在页面的基类里判断或者在Page_Init里设置控件隐藏或显示. 通用权限设计

Java开源生鲜电商平台-用户表的设计(源码可下载)

Java开源生鲜电商平台-用户表的设计(源码可下载) 说明:由于该系统属于B2B平台,不设计到B2C的架构. 角色分析:买家与卖家. 由于买家与卖家所填写的资料都不一样,需要建立两站表进行维护,比如:buyer,seller. 这样进行数据库的解耦,任何一方的变动都互不影响,但是我想集中式管理,以及一些业务个性化要求,我就增加了一个users表.表结构如下: 账号唯一键,所以做了唯一键索引, 账号的准确性采用手机短信验证. 根据类型区分买家与卖家,登陆的时候,采用的就是users这种表进行维护

多租户通用权限设计(基于casbin)

多租户通用权限设计(基于 casbin) 所谓权限控制, 概念并不复杂, 就是确认某个操作是否能做, 本质上仅仅就是个bool判断. 权限几乎是每个系统必不可少的功能, 和具体业务结合之后, 在系统中往往表现的非常复杂和难于控制, 很大部分原因是把权限和具体业务结合的太过紧密, 把业务的复杂度也加入到权限控制中来了. 一直以来, 都有个想法, 想做一套简单好用的通用权限系统, 和任何业务都没有关系, 仅仅就是权限本身的功能. 对此, 做过很多尝试, 由于设计能力有限, 最后都不了了之, 没能坚持