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的 ...
随机推荐
- oracle在schema是什么意思?
看来有些人还在schema不明白的真正含义,今天,我再次整理.我希望能帮助. 我们先来看看它们的定义:A schema is a collection of database objects (use ...
- wbadmin delete backup删除服务器旧的镜像备份
- VS2010程序打包操作
摘录:http://www.cnblogs.com/daban/archive/2012/06/27/2565449.html 1. 在vs2010 选择“新建项目”----“其他项目类型”-- ...
- gcc #define 学习记录
//test.c #include <stdio.h> #include <stdlib.h> //字符串化运算符 #define EXPAND(name) ({ \ prin ...
- 桥模式设计模式进入Bridge
Abstraction:抽象部分的父类,定义须要实现的接口. 维护对实现部分的引用,从而把实现桥接到Implementor中去 Implementor:实现部分的接口 RefinedAbstracti ...
- Windows在结构Eclipse+Android4.0开发环境
官方搭建步骤: http://developer.android.com/index.html 搭建好开发环境之前须要下载以下几个文件包: 一.安装Java执行环境JRE(没这个Eclipse执行不起 ...
- 最佳新秀SSH十六Struts2它是如何工作的内部
前面说完了Spring.Hibernate,非常自然今天轮到struts了.struts的核心原理就是通过拦截器来处理client的请求,经过拦截器一系列的处理后,再交给Action.以下先看看str ...
- java计算器 图形用户界面 精简版
package com.rgy.entity; import java.awt.*; import java.awt.event.*; @SuppressWarnings("serial&q ...
- J Dp
<span style="color:#000099;">/* ____________________________________________________ ...
- WebxFrameworkFilter 请求响应过程
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTFRpYW5jaGFv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...