为什么要开源?

有句:“赠人玫瑰,手有余香。”,在园子里学习有些一时间了,得到了很多人的帮助,我自已练习做了一套基于Winform的管理类小软件《小菜用户权限管理软件》,只当学习用,今天汇总一下开源分享给大家。

我这个框架集成了好几个有用的框架:WeifenLuo.WinFormsUI.Docking.dll布局组件,分页组件,皮肤套件等,我在整体色调等方面做了些优化,让整个系统看起来比较协调。

当然,还有很多不足的,毕竟这是练习嘛~~如投入商业使用还是有很多限制的。

现在开始描述一下这个系统的具体情况,给有兴趣的朋友研究带来便利。

软件整体架构

软件分为四个模块:用户管理,部门管理,角色管理,功能管理。平台主要是基于Winform,.Net FrameWork 4.0,支持SQL Server,Oracle,MySql,只要在配置文件中切换就可以。

操作数据层集成了NHibernate框架组件:XiaoCai.ORM.dll,软件框架集成多功能组件XiaoCai.WinformUI.dll:涉及的有用功能有分页控件,多文档界面布局(像Visual Studio一样的布局效果喔),仿Outlook的OutLookBar导航,界面启动时的闪屏效果增强用户体验,系统托盘效果。

整体架构,如下图:

项目结构

  • 引入类库

  • 代码结构

软件模块介绍

用户登录模块:

用户登录成功后闪屏效果:

主界面整体效果:

用户管理模块界面:

程序配置文件

<?xml version="1.0"?>
<configuration><appSettings><add key="FMS.Web.Services.INIService" value="http://localhost/OAServices/INIService.asmx"/><!-- Database with WebService --><add key="FMS.Remote" value="N"/><add key="FMS.GlobalSessionFactory" value="XiaoCai.Auth.DAL.Global.SQLServerSessionFactory,XiaoCai.Auth.DAL.Global"/><!--<add key="FMS.GlobalSessionFactory" value="XiaoCai.Auth.DAL.Global.MySQLSessionFactory,XiaoCai.Auth.DAL.Global" />--><!--<add key="FMS.GlobalSessionFactory" value="XiaoCai.Auth.DAL.Global.OracleSessionFactory,XiaoCai.Auth.DAL.Global" />--><!-- Database without WebService --><add key="FMS.Database.MySQLConn" value="server=localhost;user id=root;password=12345;database=SecurityDB;character set=utf8"/><add key="FMS.Database.SqlServerConn" value="Data Source=localhost,1433;Network Library=DBMSSOCN;Initial Catalog=SecurityDB;User ID=root;Password=12345;"/><add key="FMS.Database.OracleServerConn" value="User Id=AGANQIN;Password=12345;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SID=SecurityDB)(SERVER=DEDICATED)));"/></appSettings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>

程序源码运行注意

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;namespace XiaoCai.SecurityManager
{static class Program{/// <summary>/// The main entry point for the application./// </summary>
        [STAThread]static void Main(){Auth.App.Core.AppCore.Startup();//程序序动时,加这么一句
            Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(new LoginForm());}}
}

数据库文件

  • 关于SQL Server,MySql,Oracle数据库文件生成脚本,我放在XiaoCai.Database.rar
  • 导入注意事项:数据库命名为SecurityDB
  • SQL Server:

  • 主要有9张表:其中表T_AUTH_DEPT_ROLE,T_AUTH_DEPT_USER,T_AUTH_FUNCTION_ROLE,T_AUTH_FUNCTION_USER,T_AUTH_USER_ROLE相关ID都要设为栏位联合组件,其他的表ID设为唯一主键。
  • 在其他数据库中,Oracle,MySql中同理,但略有些不同。
  • 注:朋友反馈SQL Server脚本不全,上传SQL Server数据库文件
  • http://files.cnblogs.com/aganqin/SecurityDB.rar
  • http://files.cnblogs.com/aganqin/SecurityDBSQL.rar
  • 数据库脚本:
USE [SecurityDB]
GO/****** Object:  Table [dbo].[T_AUTH_DEPT]    Script Date: 2013/10/21 10:51:55 ******/
SET ANSI_NULLS ON
GOSET QUOTED_IDENTIFIER ON
GOCREATE TABLE [dbo].[T_AUTH_DEPT]([ID] [int] IDENTITY(1,1) NOT NULL,[NAME] [nvarchar](50) NOT NULL,[NOTE] [nvarchar](500) NULL,[CREATETIME] [datetime] NOT NULL,CONSTRAINT [PK_T_AUTH_DEPT] PRIMARY KEY CLUSTERED
([ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]GOUSE [SecurityDB]
GO/****** Object:  Table [dbo].[T_AUTH_DEPT_ROLE]    Script Date: 2013/10/21 11:08:00 ******/
SET ANSI_NULLS ON
GOSET QUOTED_IDENTIFIER ON
GOCREATE TABLE [dbo].[T_AUTH_DEPT_ROLE]([DEPT_ID] [int] NOT NULL,[ROLE_ID] [int] NOT NULL,CONSTRAINT [PK_T_AUTH_DEPT_ROLE] PRIMARY KEY CLUSTERED
([DEPT_ID] ASC,[ROLE_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]GOUSE [SecurityDB]
GO/****** Object:  Table [dbo].[T_AUTH_DEPT_USER]    Script Date: 2013/10/21 11:08:12 ******/
SET ANSI_NULLS ON
GOSET QUOTED_IDENTIFIER ON
GOCREATE TABLE [dbo].[T_AUTH_DEPT_USER]([DEPT_ID] [int] NOT NULL,[USER_ID] [int] NOT NULL,CONSTRAINT [PK_T_AUTH_DEPT_USER] PRIMARY KEY CLUSTERED
([DEPT_ID] ASC,[USER_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]GOUSE [SecurityDB]
GO/****** Object:  Table [dbo].[T_AUTH_FUNCTION]    Script Date: 2013/10/21 11:08:23 ******/
SET ANSI_NULLS ON
GOSET QUOTED_IDENTIFIER ON
GOCREATE TABLE [dbo].[T_AUTH_FUNCTION]([ID] [int] IDENTITY(1,1) NOT NULL,[NAME] [nvarchar](50) NULL,[DESCRIPTION] [nvarchar](500) NULL,[PARENTFUNC_ID] [int] NULL,[CONTROL_ID] [nvarchar](255) NULL,[VERSION] [nvarchar](20) NULL,[ISEXPIRE] [int] NULL,[DIRECTORYNAME] [nvarchar](200) NULL,[SYSTEM_TYPE_ID] [nvarchar](255) NULL,[CREATETIME] [datetime] NOT NULL,CONSTRAINT [PK_T_AUTH_FUNCTION] PRIMARY KEY CLUSTERED
([ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]GOUSE [SecurityDB]
GO/****** Object:  Table [dbo].[T_AUTH_FUNCTION_ROLE]    Script Date: 2013/10/21 11:08:40 ******/
SET ANSI_NULLS ON
GOSET QUOTED_IDENTIFIER ON
GOCREATE TABLE [dbo].[T_AUTH_FUNCTION_ROLE]([FUNCTION_ID] [int] NOT NULL,[ROLE_ID] [int] NOT NULL,CONSTRAINT [PK_T_AUTH_FUNCTION_ROLE] PRIMARY KEY CLUSTERED
([FUNCTION_ID] ASC,[ROLE_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]GOUSE [SecurityDB]
GO/****** Object:  Table [dbo].[T_AUTH_FUNCTION_USER]    Script Date: 2013/10/21 11:08:53 ******/
SET ANSI_NULLS ON
GOSET QUOTED_IDENTIFIER ON
GOCREATE TABLE [dbo].[T_AUTH_FUNCTION_USER]([FUNCTION_ID] [int] NOT NULL,[USER_ID] [int] NOT NULL,CONSTRAINT [PK_T_AUTH_FUNCTION_USER] PRIMARY KEY CLUSTERED
([FUNCTION_ID] ASC,[USER_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]GOUSE [SecurityDB]
GO/****** Object:  Table [dbo].[T_AUTH_ROLE]    Script Date: 2013/10/21 11:09:06 ******/
SET ANSI_NULLS ON
GOSET QUOTED_IDENTIFIER ON
GOCREATE TABLE [dbo].[T_AUTH_ROLE]([ID] [int] IDENTITY(1,1) NOT NULL,[NAME] [nvarchar](200) NOT NULL,[NOTE] [nvarchar](500) NULL,[CREATETIME] [datetime] NOT NULL,CONSTRAINT [PK_T_AUTH_ROLE] PRIMARY KEY CLUSTERED
([ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]GOUSE [SecurityDB]
GO/****** Object:  Table [dbo].[T_AUTH_USER]    Script Date: 2013/10/21 11:09:17 ******/
SET ANSI_NULLS ON
GOSET QUOTED_IDENTIFIER ON
GOCREATE TABLE [dbo].[T_AUTH_USER]([ID] [int] IDENTITY(1,1) NOT NULL,[USERID] [nvarchar](255) NOT NULL,[PASSWORD] [nvarchar](255) NOT NULL,[NAME] [nvarchar](255) NOT NULL,[IDENTITYCARD] [nvarchar](255) NULL,[OFFICEPTELHONE] [nvarchar](255) NULL,[MOBILEPHONE] [nvarchar](255) NULL,[EMAIL] [nvarchar](255) NULL,[ADDRESS] [nvarchar](255) NULL,[POSITION] [nvarchar](255) NULL,[ISEXPIRE] [int] NULL,[CREATETIME] [datetime] NOT NULL,CONSTRAINT [PK_T_AUTH_USER] PRIMARY KEY CLUSTERED
([ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]GOUSE [SecurityDB]
GO/****** Object:  Table [dbo].[T_AUTH_USER_ROLE]    Script Date: 2013/10/21 11:09:29 ******/
SET ANSI_NULLS ON
GOSET QUOTED_IDENTIFIER ON
GOCREATE TABLE [dbo].[T_AUTH_USER_ROLE]([USER_ID] [int] NOT NULL,[ROLE_ID] [int] NOT NULL,CONSTRAINT [PK_T_AUTH_USER_ROLE] PRIMARY KEY CLUSTERED
([USER_ID] ASC,[ROLE_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]GO

源码

  • 小菜用户权限管理软件主源码:XiaoCai.SecurityManager.rar

  • 涉及相关和核心类库:XiaoCai.Commlib.rar

  • 把XiaoCai.Commlib.rar解压缩引入XiaoCai.SecurityManger项目中即可。

  • 核心类库源码:XiaoCai.Core.rar

尽管有很多不如意,但在开源分享过程中能学到一点东西,希望也对你有所帮助,谢谢!

致歉

可能我导出数据脚本有问题,造成很多想研究的朋友数据库不成功,浪费大家时间,对IT人来说,浪费时间等于浪费金钱,生命啊,在此抱歉。

现在添加上生成表的数据库脚本。

转载于:https://www.cnblogs.com/aganqin/p/3377850.html

小菜的系统框架界面设计-小菜用户权限管理软件开源大放送相关推荐

  1. 小菜的系统框架界面设计

    问题: 在系统开发中,布局界面设计是比较重要的一个环节,我曾在一家甲方公司做过MES开发,见过的系统界面五花八门,有100号人,就有近100种样式,开发的小系统数不清,命名规范更是杂乱无章.所以作为I ...

  2. 会员权限 表设计mysql_用户权限管理数据库设计

    RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成"用 ...

  3. (附源码)springboot电商系统前端界面设计与浏览器兼容性研究 毕业设计 231058

    基于springboot电商系统前端界面设计 摘  要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势:对于电商系统前端界面设计与浏览器兼容性研究当然也不能排除 ...

  4. spring boot电商系统前端界面设计与浏览器兼容性研究 毕业设计-附源码231058

    摘  要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势:对于电商系统前端界面设计与浏览器兼容性研究当然也不能排除在外,随着网络技术的不断成熟,带动了电商系统前 ...

  5. 一个Web系统OA界面设计和开发

    早在中国IT业方兴未艾之时,计算机应用系统主要以功能实现为主,几乎没有界面设计这个概念.时至今日,随着计算机和网络的不断普及,社会信息化程度日益加深,用户和市场的不断成熟,人们已经不仅仅满足于&quo ...

  6. ToB产品设计:用户权限系统解析

    ToB产品设计:用户权限系统解析 文章以产品经理的角度思考,对权限系统的核心进行剖析,抽象出权限系统中的核心要素,并结合钉钉的一些做法对权限系统进行介绍. 一.什么是用户权限系统 权限管理系统是任何一 ...

  7. 图书销售系统(C#界面设计)

    图书销售系统(C#界面设计.附源码链接) 视频可访问B站(评论里有相应的学习视频链接) https://www.bilibili.com/video/BV1vy4y1x7Cn/ PS: SQLserv ...

  8. SSM电影点播系统03-UI界面设计

    界面设计 本系统设计思想大概是以大屏显示为主,左侧有一个浏览框,右侧显示点击选中的电影,再加上一个搜索框,整体风格我是设计成了蓝色色调,白色字,用 SUI mobile 前端框架设计了部分 DIV 的 ...

  9. 基于MATLAB的数字图像处理系统GUI界面设计

    基于MATLAB的数字图像处理系统GUI界面设计 图像读入 从图形文件中读入图像 imread Syntax: A = imread(filename, fmt) filename:指定的灰度或彩色图 ...

  10. 麒麟系统登录界面开启root用户登录

    文章转自:https://blog.csdn.net/qq_33427869/article/details/123639654,全文转发,主要用于后续使用中可快速查阅. 编者目前使用的麒麟4.0.2 ...

最新文章

  1. windows下eclipse连接hadoop
  2. 重庆两江新区将建国内最大“云计算”数据基地
  3. Java容器源码分析-HashSet vs TreeSet vs LinkedHashSet
  4. three.js glb 多个_25万的预算,奔驰GLB、宝马X1、奥迪Q3该怎么选
  5. 使用Eclipse进行Makefile项目
  6. 不断迭代,严苛细节,最终性能如何满足? 基于ELK的大数据平台实践分享
  7. flex 下对齐_Flex 布局示例
  8. Java笔记-异常机制中try(...)中括号的用法
  9. 在ASP.NET 3.5中使用新的ListView控件(6)
  10. 华为前员工李洪元:我的诉求只有见任总能解决;音悦台被传倒闭;.NET Core 3.1 发布 | 极客头条...
  11. FTP Client Setup
  12. 安装VisualSVN Server时候,端口号冲突
  13. Ubuntu 11.04 下安装配置 JDK 7
  14. 北京市土壤侵蚀强度空间分布数据
  15. Sigmoid函数简介
  16. html主题标签是什么意思,HTML5所有标签汇总及标签意义解释
  17. 计算机学院志愿公益活动,计算机科学与技术学院志愿者走进“君子残疾人之家”...
  18. 集线器(HUB)、交换机(Switch)、路由器(Router)
  19. 「中国好SaaS」重装升级,真正以用户视角,发现SaaS好项目
  20. 个人号微信淘宝客机器人SDK定制开发教程

热门文章

  1. 告别Demo项目,参与真实AI企业项目
  2. GBDT 如何用于分类问题
  3. 【统计学】10个必知必会的统计学问题 (附答案)
  4. pytorch入门——线性回归
  5. 每日算法系列【LeetCode 684】冗余连接
  6. pytorch---模型加载与保存(6)通过设备保存/加载模型
  7. pytorch相关用法
  8. 机器学习之问题建模(一)
  9. 1.8 Linux用户与用户组文件权限
  10. C语言:指向指针的指针