• 用户权限管理软件开源


    为什么要开源?

    有句:“赠人玫瑰,手有余香。”,在园子里学习有些一时间了,得到了很多人的帮助,我自已练习做了一套基于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导航,界面启动时的闪屏效果增强用户体验,系统托盘效果。

    整体架构,如下图:

    image

    项目结构

    • 引入类库

    image

    • 代码结构

    • image

    软件模块介绍

    用户登录模块:

    image

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

    image

    主界面整体效果:

    image

    用户管理模块界面:

    image

    程序配置文件

    复制代码
    <?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:

    image

    复制代码
    USE [SecurityDB]
    GO
    
    /****** Object:  Table [dbo].[T_AUTH_DEPT]    Script Date: 2013/10/21 10:51:55 ******/
    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    CREATE 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]
    
    GO
    
    
    USE [SecurityDB]
    GO
    
    /****** Object:  Table [dbo].[T_AUTH_DEPT_ROLE]    Script Date: 2013/10/21 11:08:00 ******/
    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    CREATE 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]
    
    GO
    
    USE [SecurityDB]
    GO
    
    /****** Object:  Table [dbo].[T_AUTH_DEPT_USER]    Script Date: 2013/10/21 11:08:12 ******/
    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    CREATE 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]
    
    GO
    
    
    USE [SecurityDB]
    GO
    
    /****** Object:  Table [dbo].[T_AUTH_FUNCTION]    Script Date: 2013/10/21 11:08:23 ******/
    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    CREATE 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]
    
    GO
    
    USE [SecurityDB]
    GO
    
    /****** Object:  Table [dbo].[T_AUTH_FUNCTION_ROLE]    Script Date: 2013/10/21 11:08:40 ******/
    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    CREATE 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]
    
    GO
    
    
    USE [SecurityDB]
    GO
    
    /****** Object:  Table [dbo].[T_AUTH_FUNCTION_USER]    Script Date: 2013/10/21 11:08:53 ******/
    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    CREATE 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]
    
    GO
    
    USE [SecurityDB]
    GO
    
    /****** Object:  Table [dbo].[T_AUTH_ROLE]    Script Date: 2013/10/21 11:09:06 ******/
    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    CREATE 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]
    
    GO
    
    USE [SecurityDB]
    GO
    
    /****** Object:  Table [dbo].[T_AUTH_USER]    Script Date: 2013/10/21 11:09:17 ******/
    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    CREATE 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]
    
    GO
    
    USE [SecurityDB]
    GO
    
    /****** Object:  Table [dbo].[T_AUTH_USER_ROLE]    Script Date: 2013/10/21 11:09:29 ******/
    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    CREATE 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
    复制代码

    源码

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

    致歉

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

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

  • 相关阅读:
    240. Search a 2D Matrix II
    442. Find All Duplicates in an Array
    4. Median of Two Sorted Arrays
    3. Longest Substring Without Repeating Characters
    poj 3616
    cf 337 div2 c
    poj 2385
    poj 2229
    uvalive 3231
    Entity Framework 学习初级篇7--基本操作:增加、更新、删除、事务
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3380251.html
Copyright © 2020-2023  润新知