HR系统邮件审批功能总结
时至今日,来兰亭工作的第三个小任务算是暂时告一段落了。这个小任务是耗费时间最长的,因此在这里总结整理一下。
首先这个功能的出发点是方法领导进行手下员工的审批,包括加班申请,休假申请,和漏打卡申请。由于HR系统的不给力,导致领导登录HR系统进行审判的时候耗费了太多的时间。所以考虑以邮件的形式,对每个申请进行系统外的审批。
起初考虑做这个功能的方案有两个:
- 直接调用原系统DLL里的审批方法。
- 手写sql,执行审批的sql语句或存储过程。
通过查看代码发现,审批的流程极其复杂,因为引入了一个工作流系统,所有的流程都是工作流设计器来完成的。而工作流设计器是一个以界面拖拽控件的形式来完成定制的业务逻辑。逻辑的关键代码在工作流设计器里没有找到(怀疑是原开发公司把核心代码编译完成后交付的)。所以,代码的内部逻辑不是很好找。
于是尝试用第一种方式:用我自己的dll去调用他的dll中的方法。首先需要引用他所有相关的dll,否则编译不会通过。(他所以的dll有200多个,由于不知道哪些是和此功能相关的,所以得全部引用上……),尝试调用方法的时候总是报错。怀疑是他里面的方法在调用前进行过一些初始化的工作,比如初始化spring等等的东西,这个就不太好办了。因此,该方案被搁置。
接下来准备尝试手写sql来完成审批,这也是领导希望的一种方式,因为它无论从效率上还是从对系统数据库的理解上都是更好的。但是监控的结果让我彻底放弃了这种想法。
尝试着对审批同意的事件进行了监控。发现记录了700多条sql…… 面对这个数字我只能感叹,也难怪之前的系统效率不高呢。于是尝试着整理数据库的结构,用到了一些工具来生成数据库文档。但是还是不知从何分析。于是此方案再次搁置。
于是又想到调原有的方法来模拟,但是初始化这块总是摸不透。灵感一现,那就模拟一下初始化的工作呗,怎么模拟呢?由于对原系统的工作流程不熟悉,那就完全照搬——复制了一个一模一样的站点,然后修改我需要的部分。这样,复制后的站点可以正常的启动,调接口。
于是我在新站点下建立了一个调用接口的测试页面,调用的过程发现原网站有身份验证(forms身份验证),在没有通过验证前,无法访问网站内的aspx页面
<authentication mode="Forms"/>
<forms loginUrl="~/logon.aspx" name="ESSAuthForm" timeout="10" protection="All" path="/">
<credentials passwordFormat="MD5">
<user name="username" password="password"/>
</credentials>
</forms>
</authentication>
此段配置是说网站采用forms身份验证,验证的原理就是登录成功后,框架会写入一个身份令牌的cookie到客户端浏览器,在访问其他页面的时候,需要进行验证。没有授权的用户访问页面时,就会被重定向到logon.aspx这个页面去。
于是就想,为我的某些特权页面允许匿名访问不就行啦。
一、设置所有页面都需要验证
<system web>
<authentication mode="Forms">
<forms loginUrl = "Lonin.aspx" name = ".ASPXFORMSAUTH"/>
</authentication>
</system web>
二、再特别设置对某个目录下的页面不需要验证(NoAuto为不需要验证的页面所在的目录)
<location path="NoAuto">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
尝试的时候发现不起任何作用。这下就麻烦了。经过研究,怀疑系统在其他地方还有对身份授权的验证,于是搜索了一下dll,发现在有个验证的命名空间下有两个方法,进行了身份的验证,验证不通过的话,就跳转到登录页。
于是……果断注释掉那两个方法,问题解决!
这个自定义的验证是在这里进行的配置:
<httpModules>
<add name="AuthenticateModule" type="CDC.PowerESS.Web.Support.AuthenticateModule,ESS.Web"/>
</httpModules>
相当于在处理管道的时候就进行了验证,杯具啊。
突破了这个,剩下的任务就好办了。
写个批量审批页面,ajax调用接口。
再写个后台程序,就齐了。
HR系统邮件审批功能总结的更多相关文章
- 系统右键自定义功能-右键备份【C#】
平时在某些公司发布网站的时候,都是手动备份文件,以免发布错误,做回滚使用.频繁的发布,在做备份的时候也会稍稍浪费点时间.当然在一些大的公司都会有一些自动发布系统,就不会出现这种问题了,对这种问题,我做 ...
- HR系统+人脸识别
近期一直在写一套HR系统,这套HR系统和人脸识别相结合.全然杜绝取代刷卡的情况产生.系统的灵活性比較强,开发简洁高速. 例如以下是一些功能上的截图 考勤模块仅仅是列举当中一个请假申请的功能做为展示 ...
- Django error信息邮件通知功能配置部署
1. 最近QA成为项目的重点,除了突破依赖外部表的阻力开始启用单元测试,还有一点就是对在线的生产服务的错误信息启用这个邮件通知功能,下面简单说一下启用方法: 1.发送邮件账号配置配置: EMAIL_H ...
- wordpress评论回复自动发邮件的功能
A.插件流,可以说WP强大的插件功能的确能省事不少. 插件的办法一般是两步:第一实现成功发邮件,第二时间评论自动回复,这就需要用到两个插件,一个是Configure SMTP,一个是Mail To C ...
- shell邮件发送功能实现
本文中以163邮箱为例,测试shell邮件发送功能.常见的工具有:mailx.sendmail.mutt等. 1.设置邮件客户端 (1)启用pop3.smtp服务,以支持第三方客户端支持 (2)设置授 ...
- 学霸系统UI部分功能规格说明书
发布人员:软件工程实践小队 发布内容:学霸系统UI部分功能规格说明书 版本:学霸V1.1版本 ◆Part 1:引言 1.1目的 本功能规格说明书的目的在于明确 ...
- 如何设置outlook实现自动秘密抄送邮件的功能?
很多朋友会发现虽然在家里同步了公司的邮箱可以正常收发邮件,可是每当使用家里的outlook发送相关邮件的时候,在公司的邮箱里找不到相关的发件记录,只能同步收件箱,而不能同步发件箱应该是比较让人困扰的问 ...
- spring-boot-route(二十二)实现邮件发送功能
在项目开发中,除了需要短信验证外,有时候为了节省 短信费也会使用邮件发送.在Spring项目中发送邮件需要封装复杂的消息体,不太方便.而在Spring Boot项目中发送邮件就太简单了,下面一起来看看 ...
- Aspose.Words实现邮件合并功能和打印
前言 最近公司要做一个B/S架构的web打印系统,主要是可以上传.下载.邮件合并.打印等等,还有就是角色的分配.用户的创建.日志记录等等,跟一般的web系统一样.可能不一样的就是需求:想把excel的 ...
随机推荐
- div 浮动框
- MVC @Html控件
传统的Html元素不能和服务端数据进行绑定 HtmlHelper类提供了一系列的方法来生成Html元素 并可以实现与数据绑定在一起 然后生成Html Html.BeginForm(actionName ...
- Nginx+Varnish
Nginx+Varnish 实现动静分离,为服务器分流,降低服务器负载 相必大家在看加快网站响应速度方面的文章时,都提过这么一条:动静分离.那怎样实现动静分离呢,这里笔者就亲自搭建相关服务实现动静分离 ...
- uva 1331 - Minimax Triangulation(dp)
option=com_onlinejudge&Itemid=8&page=show_problem&category=514&problem=4077&mosm ...
- android-将系统和应用程序级的屏幕亮度
/** * 获取当前屏幕亮度模式 * SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 为自己主动调节屏幕亮度 * SCREEN_BRIGHTNESS_MODE_MANUAL=0 ...
- eclipse报错:发现了以元素 'd:skin' 开头的无效内容。此处不应含有子元素
Console报错: sdk\system-images\android-22\android-wear\armeabi-v7a\devices.xml cvc-complex-type.2.4.d: ...
- HDU 1018-Big Number(数学)
Big Number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- [LeetCode290]Word Pattern
题目: Given a pattern and a string str, find if str follows the same pattern. Here follow means a full ...
- 带项目的一些体会以及合格的 Leader 应该具备什么特质?(转)
许多项目有这样几种 Leader: 1. 泛泛而谈型 很多时候 Leader 仅仅给出一个大方向,提一些高屋建瓴的理论方向,事情还是交由普通开发人员去做.完了可能又会回头埋怨开发人员的水平不行,没有达 ...
- 从苹果系统InstallESD.dmg里提取IOS
右键下载的Mac OS X Mountain Lion镜像:InstallESD.dmg,选择7-zip------打开压缩包 2.双击InstallMacOSX.pkg 3.选中InstallESD ...