Catalog=UserCenter;IntegratedSecurity=SSPI;"/>
配置文件中附有其他类型数据库的连接串的参考配置。
三.运行方法:
双击可执行主程序DotNet.WinForm.exe;若数据库连接配置正确,会出现如下登
录界面,如下图。
双击可执行主程序DotNet.WinForm.exe;若数据库连接配置正确,会出现如下登录界面,如下图。
默认情况下,超级管理员的密码为空,点击登录进入后台管理软件。
正确登录后会在操作系统的任务栏右下角区域会出现小太阳的图标为后台管理程序。
鼠标右键单击黄色小图标,出现软件主菜单,根据需求选择自己需要的功能,如用户(账户)管理功能等等。
如图下图。
第2章登录后台管理系统
很早的时候曾听别人说,印度软件公司中有些软件开发人员可能一直负责开发系统登录功能,当时觉得不就是一个登录系统的功能嘛?
把用户名、密码输入好后按一下登录按钮不就可以了?
哪里有什么那么多好做的功能?
后来随着对管理软件的深入理解、接触过很多客户后才真正体会到,真正做好一个登录窗体也的确不是那么容易的事情,一个软件的质量是否好?
设计开发者是否想得足够周到?
行家从登录窗体上也能知道个一二。
例如有多个系统,这些系统是否支持单点登录?
只用一套用户名密码可以登录多个系统?
系统登录是否可以进行灵活配置?
离职人员的处理、临时授权用户的登录系统问题、一个职员的多个系统账户功能、系统账户的密码策略等等、输入错误密码时的登录限制等等都能体现出设计、开发人员的水平。
2.1请用"登录"不要"登陆"
登录系统大家经常犯的一个错误是写成"登陆系统"曾经向资深人士咨询过此事,都觉得写成"登录系统"才是正确的,所以建议大家用正确的写法"登录系统"。
而不是打仗时军队登陆岛屿,很多人会忽视这个用词、有些细节的确是应该注意的,有错就改、马上就改。
2.2系统登录
用户登录系统后,不管是什么账户什么时候登录系统,都应该记录登录日志,就像平时管理严格的单位一样,有前台记录外来人员、出入门需要刷门禁系统一样,系统登录成功后应该更改账户的在线状态,若登录失败的,都应该记录失败日志。
输入的密码长度、允许输入错误密码的次数都应该进行限制,防止破坏分子用暴力方式猜测密码,需要对暴力猜测密码等行为设置障碍,防止入侵系统行为发生。
第3章用户(账户)管理
用户(账户)管理模块主要由申请用户(账户)用户(账户)审核、用户(账户)、编辑、创建用户(账户)、设置用户(账户)密码、设置用户(账户)有效状态、删除用户(账户)等等功能部分组成。
创建新用户(账户)可以由普通用户申请创建后由系统管理审核生效,也可以由系统管理员直接创建用户(账户),多种创建用户(账户)的方法可以减少系统管理员的工作量、可以更及时、准确的创建账户,将工作量分摊到多个操作人员、管理员上,可明显提高工作效率。
通常情况下,新同事的用户(账户)都由系统管理员进行录入创建生效,但是在,一个大集团公司中有多个分公司的情况下或有异地办公机构时都由一个系统管理员录入账号不只是效率高低的问题,由于没在现场工作出错的概率很高,若可以在任何分公司在任何一台电脑上进行申请用户(账户)功能、甚至是直接在网上进行申请用户(账户)步骤,相对来讲比单一系统管理直接创建用户(账户)的做法工作效率会高一些,自己录入自己的账户信息或者由身边的同事帮助录入信息会更准确一些、及时一些。
自己录入自己的账户信息优点在于想用什么登录名就用什么登录名、这样在日常办公中使用信息系统也会更符合习惯一些、更贴切一些、也不用记过多的用户密码、至少可以使用自己多年习惯的用户名密码来登录业务系统。
当然系统中的用户名是不可以重复的,注册时系统会自动检测是否数据已重复,若是由系统管理员创建的用户名不符合操作者的习惯又不允许用户自己可以自由修改登录用户名是一个很糟糕的事情、很恼火的事情。
在比较庞大的组织机构里有分公司有异地办公机构,使用本功能模块,还有分级审核、分级管理功能比较好,就是由某个分公司申请的账号可以由这个分公司的系统管理员进行审核管理,这个账户的权限也可以由相应的管理员进行管理等,把整个系统管理员的工作可以分摊给各个分公司的系统管理员或者授权的操作员,可以更准确掌握实际工作情况、可以更加贴近实际权限配置、管理等,同时又能支持集中式的管理模式。
3.1申请用户(账户)
申请用户(账户)模块主要是为了灵活、快速申请新账户功能,还没分配到系统账号的用户可这个功能模块里提交申请用户(账户)的信心,由系统管理员审核后,才可以登录业务系统。
准确填写好需要申请的用户名、密码、选择好所在的部门等,点击"申请账户"按钮即可进行申请步骤,非管理员申请的用户(账户)需要审核过程,在申请账户的同时,会给相应的系统管理员发送即时信息,当然在管理员离线状态下时也可以通过邮件提醒方式或者手机短信提醒模式提醒管理者及时进行审核工作。
若需要有审核步骤,只有系统管理员进行审核通过后,所申请的账号会生效后才可以登录到相应的管理系统中
若系统中有未审核的账户,系统会给系统管理员发送在线即时消息进行提醒,管理员可以在第一时间进行审核确认工作,主动提醒可提高工作效率,若无待审核账户,也没必多余的操作,这样会提高系统的友善性,使系统变得更加人性化、智能化。
3.2用户(账户)审核
进入用户(账户)审核功能页面,默认情况下、待审核的用户(账户)数据会列出来,系统管理员直接可以进行审核步骤,若整个系统是按分级管理方案部署的,那只会列出来当前管理员需要的数据列表出来,不是他所负责的待审核数据不会列出来。
可以通过账户审核的查询功进行模糊查询数据、可以按审核状态、默认角色等条件进行过滤查询数据,可以更准确、快速查询数据。
编辑功能可以对申请创建用户账号时填写信息进行修改,包括用户名、姓名、默认角色等。
用户(账户)被审核通过、驳回操作时,按注册时填写的邮件地址给用户发送提醒通知邮件,及时通知用户审核结果,审核通过的用户可以及时登录系统进行相应的业务操作,有邮件提醒功能可以提高工作效率、也不用打电话通知。
导出功能是将当前窗体中的数据导出为Excel格式的数据保存到本地计算机上,方便用户进行二次数据处理。
删除功能,选择好需要删除的数据,点删除按钮即可,系统中被操作员误删的数据可以由数据库管理员进行恢复操作,应用系统里未进行物理删除数据、只对相应的数据打了删除标记处理,所以有误操作数据后恢复数据的可行性。
修改用户(账户)时不允许重复用户名,若输入了编号,编号不允许重复,系统会自动会检测数据是否已经重复,已被设置为删除标志的用户(账户)不再重复验证的范围内,系统中的登录用户名也可以由管理员进行修改。
用户(账户)生效后,用户也可以自由修改用户(账户),这样更符合用户的习惯,用户的排斥心里也会少很多。
给每个新用户及时分配个合适的编号,在真实的工作实际情况下,比较难做得到,所以建议可以先不输入用户编号,等用户的编号被确定下来后可以事后进行设置比较符合实际工作习惯。
3.3用户(账户)管理
用户(账户)管理模块应该是系统管理员最常用的功能模块之一,在这个模块里可以直接创建用户(账户)、修改用户(账户)信息、可以设置用户的密码。
用户(账户)管理功能也能实现分级管理功能,例如每个分公司管理每个分公司的账户、由超级管理员管理所有的用户(账户)功能。
员工离职时不建议直接删除用户(账户),而是停用用户(账户),例如员工离职了,很多系统中的历史真实数据记录不应该被删除,员工离职时可能最后一个月的工资还没发放,相关的离职手续也没办理好,应该将用户设置为停用状态(取消有效状态),用户(账户)被随便删除后有可能会引起系统中其他相关数据出现关联错误的隐患。
员工离职后,就把账户删除了,可能会引发一些数据关联性、引用上的错误,例如人走了,以前的工资数据、工作日志数据、项目数据等等都已是发生过的真实数据,不应该把这个用户给删除了,相关数据都应该作为历史数据保留下来、留下历史痕迹才是正确的做法。
按道理,一切数据都不应该进行物理删除,而是进行逻辑删除才对,例如进行了删除操作,只是给数据打上一个删除标志(例如数据表里的DeleteMark字段标志设置为
1、表示已经被删除了)若真需要删除数据,应该由数据库管理员进行真正的物理删除,操作,物理删除一条数据是非常容易,但是由于误删了一条数据,想把这条数据再恢复过来的代价往往是非常昂贵的,可能要花费10倍、100倍的代价才能把这个数据恢复过来,就是提醒了用户是否确认删除?
用户也按了确认也不应该进行物理删除操作。
添加新用户(账户)的效果图如下,当然这个窗体也可以进行二次开发,按自己的需要增加字段等等,例如把手机号码、电子邮件地址也录入进来或进行一些其他的相关连的事务处理。
系统管理员账户不应该轻易的被删除、用户名、编号等不应该重复的检查,当然不设置编号也是可以的,新来的员工一般都没有明确的编号,可以事后再补充也是很常见的,新建账户时必须要输入编号,而且必须输入个不重复的编号相对友善度不高、属于系统缺乏人性化、考虑不周全。
用户(账户)的导出功能,主要是为了以下几个工作需要,你可能做的是一个会员管理系统,定期需要给会员发送手机短信、宣传邮件提醒等功能,你已经购买了相应的软件或者服务,经常需要把数据导出后,快速导入到相应的另外软件系统里,达到你数据共享的目的。
同时定期导出数据到其他文件中也起了一个备份数据的用途,用户的数据是宝贵的资源,是收入来源都是通过用户来的,所以这部分数据的备份工作意识需要强一些,客户的数据都丢了,怎么联系客户、怎么保障稳定的收入呢。
当然数据到导出功能也可以按客户的个性化需要,进行二次开发,按自己的实际需要修改源码或者做一些接口处理等等,甚至直接可以到数据库中进行处理,因为相应的表结构等都有明确的定义。
有些用户的账户又不能失效、又不想让这个用户登录,那可以由管理员来设置这个账户的密码,这样这个用户就不能登录到信息系统里来了,也不用修改无效状态就可以了。
系统中的用户名是允许修改的,这一点很多系统做得都有些不友善,例如系统管理员分配了一个不喜欢的账户名,想修改也改不了,就想改,也麻烦一些,设置是需要一个过程等等,所以自己愿意用什么用户就用什么用户名还是很有必要的,当然系统管
理员也应该能干涉,能管理是非常必要的。
3.4分布式管理
每个公司管理每个公司自己的数据,日常生活中经常会遇到每个公司需要管理每个公司自己的数据,然后由总公司集中管理所有数据的需求。
我们经常会开发这个系统,那个系统,每个系统经过不断完善优化后我们才会发现,刚开始都是需要很简单的系统,但是往往到最后都会变得很复杂,最终我们还是逃脱不了重复建设。
那我们还不如刚开始的时候,就用一个考虑的比较充分的配置管理工具来管理我们的A系统、B系统,用这个系统可以配置管理非常复杂的权限配置,不管将来客户的需求怎么变来变去,都能适应,而且不用费什么力气,配置来配置去就可以了,当然一些简单的权限,当然是更容易能达到目的了。
很多时候,我们开发人员开发出来的某个管理系统,往往经不客户的折腾,最后改来改去会变得异常脆弱,要么这里出错那里出错,要么这里不稳定要么那里不稳定,很多时间都耗费在基础性的建设工作上,这时候我们也需要一个铜墙铁壁额的基础组件,用这个组件来配置管理整个系统的权限,用户,角色等就可以了。
本着把简单的软件做个彻底,彻底的铜墙铁壁,没有错误,没有漏洞,可以重复利用劳动成果的指导思想继续完善几年打造完美的精品。
铜墙铁壁的基础数据是一切管理系统及多个管理系统之间进行整合的核心基础,没有稳定的基础数据就没稳定的业务管理管理系统,所以我们开发任何一个管理系统之前就应该准备好铜墙铁壁的基础组件,可以灵活配置管理扩展的"软件数据中心",而且是源码全部公开的、数据库结构设计全部公开的核心组件。
1:
首先我们应该定义一个操作权限。
我们先登录到系统里
再选操作权限项定义管理菜单进入模块
在此模块里,定义了一个操作权限,叫"走火入魔权限配置后台管理",然后把这个权限项定义为数据集权限,意思是设置这个权限时需要设置管理范围。
2:
操作的用户需要有相应的权限并且需要设置权限范围,我们选择用户(账户)权限管理菜单
接着选择目标用户账户,对此账户进行详细的权限设置。
给目标用户,权限后台管理配置的权限,并对此权限进行范围设置(数据集权限设置)。
当前用户的操作权限范围,可以进行按明细设置,选择详细的权限范围,到此已正确设置账户的权限范围。
3:
输入演示数据。
我们先模拟输入一个北京的用户账户申请情况。
我们再输入一个上海的用户账户申请情况。
我们用系统管理员进入审核模块看看,是否有2个账户是待审核状态?
4:
是否达到了每个分公司管理每个分公司数据的目的。
我们用目标账户"吉日嘎拉"登录此权限配置管理后台,
进入用户账户审核模块,看看会是什么情况?
的确按我们的数据集权限设置范围,只出现了北京的用户审核数据,上海的账户申请数据没出现在当前操作窗体里。
从数据设计的思想来讲,非常简单的。
第4章组织机构(部门)管理
通俗的讲,就是一个集团公司,划分几个区域,每个区域都有什么分公司,每个分公司都有哪些部门一样,哪些部门又有那些子部门等。
当然也可以是外贸公司的全球性客户、合作伙伴的分布情况管理、或者是一个行政管理单位的按地区划分的行政机构的树型管理。
一般使用信息化系统的公司,大多是人数众多、地域分布相对广有异地分支机构的更迫切使用信息化管理系统,关键商业数据都需要依靠信息化技术及时进行沟通协调,提高办事效率。
软件系统需要充分考虑有多个分公司的情况下,应该如何满足管理上的需要,如何才能做得有条有理?
这时就需要有组织机构管理的理念来引导系统架构,可以充分考虑哪个负责人可以管辖哪个区域的数据等,这样也防止没有经过授权的人越级查看不应该看的客户资料、合同信息等重要商业信息。
4.1大型业务系统
属于大型集团公司,全国各地可能有多个分公司,可以划分区域、分公司等等,或者客户遍布于世界各地,需要严格的按区域划分、组织机构划分等进行严格的控制管理,每个管理员只在相应的管理范围内进行业务管理等。
在大型的信息化管理系统中,往往需要分公司的系统管理员来进行管理各自权限范围内的数据,例如各分公司的用户(账户)、各分公司的日常管理、权限配置维护等等,各分公司的系统管理员往往对所在公司的情况了解更及时更准确。
当然也可以按集中管理策略也可以,并不是非需要分公司系统管理,这要由公司的管理能力及办事效率而决定。
组织机构管理模块也有适当的整个公司的规划功能,到底设立那些部门、各个部门都有哪些工作职能,人员配置情况,岗位角色规划等等。
4.2中小型业务系统
一般一个上百人左右的中小型公司里所有内部员工都是用的软件系统,主要以公司内部管理系统为主,例如需要规划管理好公司内部的部门设置情况,人员归属情况,
可以由系统管理员进行统一的管理,例如下图。
可以通过组织机构(部门)管理工具快速配置好公司的内部部门设置情况等,这样就可以在相应的业务功能模块采用上图中的数据,各个模块都可以有效利用部门的划分及相应的部门中的员工数据等。
组织机构的默认排序顺序是非常重要的,若每次显示出来的排序顺序都是乱的,那每天应用系统的人会很不爽,其实大家都有一个习惯,哪个部门排在哪个位置,他们的先后顺序都可以灵活设置比较好,这样可以更贴近客户的习惯,软件的友善性会更高一些。
4.3微型的业务系统
有些很简单的业务系统,也不涉及到组织机构等,只要有几个用户,甚至就是一个用户,连角色什么也不需要,只要这个用户能登录系统,然后所有的事情都可以做就可以了,这时可以不用考虑那么多组织机构管理、角色权限管理等,就把这2个功能模块在模块管理中屏蔽掉就可以了。
那一个用户什么都可以操作,怎么处理比较好呢,首先可以建议使用Administrator这个登录名,这个是超级管理员的意思,只要用了这个账户,就是所有的权限都不用配置,就应该有所有的操作权限,或者还可以将用户归于到Administrators角色中,这个角色是超级管理员的意思,任何一个账户被归到这个角色中,也有所有系统的操作权限等,是系统中权限最大的用户、角色。
小公司也有发展壮大的可能性、系统里多几个空表,也无所谓的事情,将来扩展起来更好扩展,也不用非要删除了,那么几个表,也不会咬,若多余的功能菜单觉得很碍眼,那可以设置为无效状态,也不会在管理工具里显示出来了,购买笔记本电脑,也不会因为不需要无线网络,然后要求厂商把无线网络模块去掉的吧,说不定哪天就派上用处了。
4.4内外部组织机构
组织机构可以分为内部组织机构与外部组织机构,例如,客户的分布区域属于外部组织机构,一个公司的内部的部门的划分等,属于内部组织机构部分,例如下图所示。
这样做的好处是,组织机构的管理做一套就可以了,不用内部组织机构的管理做一个,外部组织机构的管理又做一套程序,这样就可以集中管理所有的组织机构了,将来由于业务的拓展等,需要数据集权限时,对整个系统的影响会很小,也留下了将来深入二次开发的余地,这个系统数据的条理性也会更强一些。
虽然现在没有严格的数据过滤需要,将来随着业务的深入、公司规模的发展,也有可能在不久的将来,客户就需要按组织机构进行数据库过滤的实际工作及管理上的迫切需要了。
第5章角色(用户组)管理
此功能模块可以灵活设置整个系统内的角色/用户组信息,可以进行对角色的添加、修改、删除、分配权限的操作,可以灵活设置某个角色中包含的用户(账户)等。
角色:
类似岗位定义、主要是为了系统分配权限、定义工作流程中设置审批节点,提高多用户(账户)的权限分配效率、减少用于账