公司有几万个用户,接近10万人,有一些紧急的通知,消息提醒,可以发个及时通知工具,这样可以快速把一些信息通知给大家,让大家快速收到信息,及时通知到系统的每个人. 自动提示信息现实状态,会在客户端自动谈出来,比较友善,发布的内容支持html格式内容.…
我们公司有1万多个网点,每个网点都可以看成是一个公司,公司对不同的网点有不同的策略,商业逻辑,每个网点的人员也都是在不断变化,全国有接近10万从业人员,当我们设计好业务逻辑程序后,不可能因为这些人员的变动,每天都调整角色成员,那不现实.   由于网点繁多,从业人员繁多,那系统权限判断只有适应公司的各种变态需求才可以,所以权限组件也进行了调整,可以把一个公司.网点加入到某个角色里,这样只要把网点加入到角色里,然后网点里的人员如何变化都没关系了,都可以适应业务逻辑.   以不变应万变,才是成熟的组件…
由于公司是面向全国服务的.全国各地都有分公司,需要管理到覆盖全国的各种业务,各种业务系统信息系统的数据都需要规范化. 公司开展网络订单功能,在全国范围内实现网络下单.提高工作效率,提高各公司之间的数据交换效率,承接订单的效率,防止沟通交流中的出错率. 通用权限管理系统组件已经实现了内置的电子商务基础数据管理功能,提供各种接口调用,为快速开发大型电子商务系统做个稳定的基础.…
由于我们的系统接近有100000个用户账户,经常会有忘记密码的时候,用户多了,很小的一个功能,每天都会有很多人在用,每个功能都非常友善,会提高提系统的效率,提高用户体验. 一天最多能返回3次手机短信,找回密码,防止黑客攻击.当然也可以增加安全性,需要输入用户名才可以获取密码.…
当用户数据非常庞大时需要一个功能,就是统计各种账户的访问系统的情况,用户数量的各种参数需要让管理者心里有个数. 1:信息系统中有多少有效账户?可以很方便能知道具体个数,让管理者心里有个数. 2:某个公司有多少有效账户?让管理者心里有个数. 3: 当前在线的账户有多少个,让管理者心里有个数. 4:登录过系统的账户有多少个,让管理者心里有个数,多少人在用系统.…
主管可以看下属的数据,这个是经常用到的一个权限,不管是大公司,还是小公司都需要的功能. 通过以下2个方法,可以任意达到想要的效果了,设置简单灵活,还能递归运算下属,有时候简单好用就是硬道理. #region public List<BaseUserEntity> public List<BaseUserEntity> GetListByManager(BaseUserInfo userInfo, string managerId) 按上级主管获取下属用户列表 /// <sum…
用成套的现成的方法引导大家开发程序,整个团队的开发效率会很高.例如我们现在有30多个开发人员,若有300个开发人员,这开发工作很容易乱套,我们需要有效的管理维护所有团队的开发工作.把数据结构.通用的组件都开发测试好,然后给大家用,开发效率会很高,整个团队会节约开发时间.思路也会一致. 系统的运行效果如下图: 源码在这个位置 设计时就这么拖拽就可以了 可以在控件的属性里设置连接的目标数据库中的表 系统里默认也有一些数据表,可以模仿一下数据库的表结构…
当开发的系统多了.用户多了.合作伙伴多了.对接厂商多了.开发人员多了.部署的服务器也多了,各种安全问题就暴露出来了. 如何安全的把这些系统集成在一起?实现集群的单点登录.严格统一的用户安全体系管理? 01:如何防止黑客捣乱? 02:如何防止竞争对手捣乱? 03:如何保障核心信息系统的安全? 04:如何可以灵活部署,系统间互不影响? 05:如何可以定期修改核心数据库密码.保证安全性,保证部署的灵活性? 06:如何保证你代码的整洁.增加方法.服务时可以灵活? 07:如何保证跨平台的调用? 08:如何…
1:成熟的组件就是可以写很少的代码,可以实现很多功能.2:又可以用源码方式调用,又可以用dll方式调用.3:不需要学习里面的细节,只要会调用就可以了.4:成熟稳定,功能齐全,bug少,甚至没bug.5:没过多的业务逻辑,大多是通用的功能,直接拿来用就可以了. 下面展示已系统组件方式的源码效果图: 只要用dll方式引用组件,很多功能都可以不用开发了,直接制作个菜单就可以了,业务模块也可以模仿这里面的功能开发就可以了,自己写少量的代码,主程序就就可以完成整个系统的框架开发的大部分功能了,可以安心开发…
可以给自己的信息管理系统增加一些即时消息提醒功能,简单方便,一般是一行代码就可以发送提醒信息了,方便二次开发,个性化改进. 1:可以用简拼,快速查找内部员工. 2:双击直接可以发QQ消息. 3:双击直接可以发手机短信. 4:当然也可以把电子邮件地址也加上. 5:方便查找本部门人员,本公司人员. 6:可以看到头像以及各种联系方式.…
整个集团有几万个用户,一个个用户添加是不现实的,只有每个公司的系统管理员添加.或者用户申请帐户,然后有相应的管理员审核,才会更准确一些. 每个公司.分公司.部门的账户情况只有所在公司的管理员是最清楚的,所以用户审核制度会很适合实际工作需要. 当有用户连续连续输入N次错误密码时,账户就会被锁定,若公司用户少,可以采取人工审核策略,但是由于系统用户庞大,所以人工审核效率有时候会很底,为了增强系统的抗黑客攻击等等考虑,每10次输入错误密码,账户被锁定10分钟,10分钟后才可以重新登录系统,这样也不需要…
系统的用户密码是有多少重要大家应该心里都有数,一个系统的密码若是大批量泄露,哪怕是少数几个人密码泄露了,都是致命的. 1: 系统里不要保存明文密码,那是引诱人家犯罪.2: 首先防范的不是外鬼,先需要防范内鬼.3: 不怕一万,就怕万一出问题,万一出了问题,会引起什么损失?4: MD5加密效率高,但是有MD5庞大字典,很容易快速找到原密码,所以可以考虑用非MD5加密方式.5: 破坏分子拿到了数据库,拿到了用户名,也不能轻易拿到用户密码.6: 加密用个性化的字符串种子,个性化的Key,加强密码安全.7…
公司的短信平台,数据量越来越大了,需要对数据进行一些优化,下面是拆分后的数据库量参考. 新开发的软件模块,必须支持分表,拆表的功能一个数据表里,不适合保存1000万以上的记录新开发的业务模块,能分表的全分表,否则,将来我们无法用其他小型数据库,例如mysql 现在系统的短信已经进行了拆表接着打算把日志也进行拆表确保数据库里,没有庞大的表,随时可以切换数据库 每个人把自己负责的事情,做到自己能力的及至,做到部门能力的及至,公司能力的及至,就很有希望了有时候我说话很随意,但是一般会注意,我说出去的话…
公司的系统庞大后,用户数量也庞大,容易引起各种网络安全相关问题,需要把每个用户的网络安全意识都提高,由于历史原因有些用户的密码过于简单,很容易被猜到,引起很多没必要的麻烦. 系统登录成功后,检查密码复杂度,若密码过于简单就强制要求修改密码,密码修改好后才可以正式使用系统,否则不让进入系统,没有实名认证的必须要求实名认证.经过一段时间的强制修改密码,所有用户的密码复杂度都会提高,网络安全意识也会提高,整个系统的安全性也会增强. 其实真正做好任何系统都不容易,一些成熟的组件工具根本没必要自己开发,直…
通常情况下,一个公司内部的部门名称,编号是不可能重复的.但是是在多公司的情况下,很可能有部门名称重复的问题存在,这时需要允许部门名称重复. 例如一个大型IT公司,在2个地区都有研发部或者客户服务部,这些部门的简称大多时候应该是重复的可能性也有,当然编号是不重复是最好的,编号重复了容易更乱了. 有些信息系统数据关系里没有用Id的主外键,可能是用了部门的名称做了数据的关联,所以组织机构管理里,虽然部门名称不允许重复,但是特殊情况下只能允许重复. 允许重复也不对,不允许重复也对,没有绝对的,所以干脆来…
折腾了2-3周,终于把全国网点数据权限,省.市.县数据规范化,查询权限规范化,基础数据规范化的思路理清楚了, 今天应该是一个里程碑式的一天 省市区数据规范化后 1:网点的基础数据可以更加严谨规范化. 2:用户的权限设置可以更加规范化. 3:限制用户查询范围的限制可以更加规范化. 4:业务系统调用的函数可以更加规范化. 5:系统底层稳定了后,开发出来的业务模块也可以稳定一些. 6:质变与量变,系统底层基础稳定成熟思路明确与之上开发N多业务子系统的长期建设优化. 7:网点应该从地理位置上,明确归属于…
若全国各地有上千个分公司,加盟店,网点,那就需要一个友善的选择分公司的功能,得有标准的全国省市县的划分数据.这样有了牢靠的基础数据后,才能开发程序得心应手了.当习惯了开发一个公司内部系统时,全国性大公司的业务系统也需要有一个熟悉过度的过程.基础数据不过关,思维不严谨,开发什么程序都会凌乱.…
1: 由于公司一次性要开发10多个子系统,每个子系统都需要有相关的业务部门进行对应.2: 若用集中式管理方式,每个业务部门人员变动,权限变动时,都需要早IT信息中心进行调整,影响工作效率.及时性.3: 每个部门的实际情况,只有所在部门的人最清楚,一般希望是随时可以在授权范围内进行更改.4: 其实信息系统是否有独立子系统的管理权限,也是看这个系统的灵活性,健壮性的,设计是否合理也能充分考验.5: 每个业务部门能独立管理自己的业务系统,也减轻IT信息信息中心的工作压力,可以集中精力建设业务系统,把一…
业务系统里经常会需要计算类似的树形权限树的业务需求 1:往往会有一些需求,a 对 b 有权限, b对c 有权限, 等等. 2:还需要很直观的看到,整个权限的树形关系,一目了然的那种. 3:程序调用简单,写代码很容易能调用我们写好的函数. 4:程序稳定,bug 少,考虑周全. 直接上图: 在模块菜单定义里,需要一个数据权限项的设定,设定方式如下图 代码调用方法: BasePermissionScopeManager permissionScopeManager = new Business.Bas…
最近工作上需要,给苹果客户端开发接口,实现集中统一的用户管理,下面是接口调用参考. 1: 获取OpenId? http://127.0.0.1/GetOpenId.ashx?username=Administrator&password=Administrator 2: 获取用户信息? http://127.0.0.1/GetSignin.ashx?OpenId=fa05d010-dc80-40f8-80c5-4d32e4d7b2c2 3: 修改密码? http://127.0.0.1/Chan…
A.系统有两个添加用户 一个是申请用户.一个是添加用户.这两个分别在什么情况下使用? 回答 1:不是所有的用户都是管理员添加的,特别是分公司多,部门多时,都由管理员添加,效率低,而且很容易输入不精确的数据. 2:每个部门,或者新员工可以让身边的同事帮忙申请帐户,然后管理员一审核通过就可以了,这样效率高,而且还可以申请自己想要的用户名,密码,非常符合实际.   B.我可不可以把用户管理和用户权限合并起来,原先的先添加用户,然后再到另一个地方去授权感觉太麻烦了. 回答 1:可以合并起来,简单的系统可…
客户端可以支持灵活的,中间层连接选择,由于我们系统的定位架构大型信息系统的,所以全国各地,甚至国外的用户也会有,所以需要支持全网络配置,只要配置了中间层,可以选择连接哪个中间层的服务程序.客户端可以进行灵活配置选择. 可以把各种网络服务的IP,端口进行配置选择,这样就可以自由选择连接哪个网络了.网络顺畅了,就不会有系统卡死等现象,系统稳定性也可以提高了.…
还是我上次提出的那个问题问题:假设一个订单表,1.角色A可以看自己的2.角色B可以看工作组的3.角色C可以看金额是1000元以下的(自定义条件是否可行?如果可以,请详细说明)4.角色D可以看整个部门的5.角色E可以看整个分公司的6.角色F可以看各分子公司的 参考代码如下:代码量会非常小,而且根本不需要写6个函数的,其实就按钮3的方法其实可以同时满足6个需求的 using System; using System.Collections.Generic; using System.Componen…
客户端会提醒是否有网络订单来了,这样及时处理网络上的用户下单,当然也会有手机短信系统,全国几千个网点就可以协同作战了,竟然有序的处理海量用户的下单.网络订单提醒功能增强效果如下: 系统每5分钟会检查一下当前网点是否有订单 每个网点都仔细维护好自己所外的地理位置,省.市.县.街道为止.若数据有问题的,还可以随时联系后台管理员. 每个功能的背后都有一个小小的故事,每个功能做出来稳定好用,都非常艰辛.…
并不是不想做B\S的管理工具,只是精力实在不够,由于用户权限管理组件是基础组件.所以C\S的也无妨,不会有几个人在乎Oracle,SQLServer是否不b\s的,注重的是功能性能,请大家不要纠结与是否B\S还是C\S上. 实现的方法.设计的界面.数据库结构的设计.底层DLL方法的函数调用,都可以参考,毕竟自己全部实现一个,耗费太多精力,不如拿过来用用参考,按自己的需要修改几下就可以用了,省心省事省力,腰不疼腿不酸,没必要浪费生命. 由于公司的组织机构庞大.网点非常多,所以数据权限的设置也非常复…
服务器上保存有上万条的基础数据,需要同步到全国各地的成千上万个客户端,而且这些基础数据也经常在有变化调整.这时候需要有一个稳定的数据同步程序,能分批同步基础数据,由于网络流量,网络的稳定性等因素,需要分批读取有更新过的数据,花费了半天时间写了一个例子代码,客户端同步从服务器上同步基础数据的功能,可以提供给大家参考一下,希望能有重复利用的价值. // 1:打开业务数据库 SqLiteHelper dbHelper = new SqLiteHelper(BaseSystemInfo.Business…
当用户数据有接近10万时,而且多表的关联也比较频繁时,能把大表拆为小表,也会提高系统的性能,I/O.运算性能.当然以后用户数据会更大可能会到30-40万以上,所有有能力时适当拆表,分分合合,合合分分也是有必要的. 拆表后,响应的类可以自动生成,代码生成器再生成以下就可以了,这样生成好的代码就兼容多种数据库了,Oracle也支持了. 用户的所有联系方式都进行了拆分了,将来有更多的联系方式,来往.易信.微信.旺旺都可以增加,不会影响系统的性能了. 这个是实体类里的代码参考,若新建立的表是空的,没默认…
1:能支持多种Excel版本,早期的.现在的版本都支持.2:能导入.3:能导出.4:有简单的例子可以参考.…
多一道防线,多一些安全保障,当程序发布到互联网上,再有成千上万的用户在用,总会有各种牛人出现,万一遇到破坏分子,那会有灾难性的打击. 只要跟利益有关系的,跟资金有关系,跟财务有关系,有竞争对手,软件系统很容易被破解或者是技术牛人来研究破绽,所以在可能的情况下加强软件的安全性, 让没有授权的用户不能非法调用任何发布的服务程序,就是能拿到源码,也无法调用.就是拿到数据库也无法知道密码.就是原码被反编译了也不能调用未授权的服务方法. 软件多一道防线,可以把90%以上的破坏分子阻止在外面,若增加4-5道…
1:软件系统一般不怕外面的人,最怕有内鬼.2:软件系统不怕一万,就怕万一,最好不要对外有漏洞,能不提供Delete方法就不提供.3:特别是不要有能远程调用的Delete方法,那就是出了事情都无法找到是谁干的.4:用的人多了,程序发布的多了,出问题的概率就增加了,所以不能有侥幸心理. 实际效果如下:把对外的接口删除方法进行注释掉. 本地调用,内部方法可以调用Delete方法,但是绝对不允许外部进行调用. 软件系统有安全漏洞,那总有一天可能会有致命的打击,数据丢失了也不知道或者没发现,轻易被黑客或者…