基于Windows Workflow的请假审批系统---毕业论文_第1页
基于Windows Workflow的请假审批系统---毕业论文_第2页
基于Windows Workflow的请假审批系统---毕业论文_第3页
基于Windows Workflow的请假审批系统---毕业论文_第4页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本 科 毕 业 论 文基于Windows Workflow的请假审批系统Leave Approval System Based On Windows Workflow姓 名:学 号:学 院:软件学院系:软件工程专 业:软件工程年 级:指导教师(校内): 职称: 职称: 年 月摘要互联网在现今已经进入了千家万户,并且以极快的速度发展着。各种有关的IT技术日新月异。在如此快速的发展过程中,出现了很多不同的软件系统需求,同时也有了很多针对这些需求的解决方案。挑选一门好的新技术总是能使功能的实现更加简便和有效。随着办公自动化的普及和推广,不少机构和企业都采用电子的方式对一些常见的流程进行处理,例如请假和报销手续等,这也带来了节省时间提高效率的好处。作为毕业设计课题,本文设计开发了基于Windows Workflow的请假流程审批系统。此应用基于ASP.NET平台,用户通过浏览器与系统进行交互,不需要其他客户端。不同角色的用户只需登录就会收到系统自动分配的任务,无需人为对流程进行设定或干预。本文论述了基于Windows Workflow的请假流程审批系统的设计及实现方法,并展示该系统的运行、测试情况,然后对本课题开发的系统做了总结,展望该领域未来的技术发展方向和行业前景。关键词:工作流;ASP.NET;请假审批; AbstractNowadays,Internet has entered tens of thousands of households with a rapid development. IT is progressing with each passing day. In such a rapid development process, there are a lot of different software system requirements, and also have a lot of solutions. A good selection of new technologies can always make it more simple and effective for function realizing. With the popularity and promotion of office automation (OA), many institutions and enterprises use electronic processes to some frequently process, such as leave and reimbursement procedures. This will also save time and bring the benefits of greater efficiency. As the graduation project topics, this paper designed and realized the leave approval system using Windows Workflow. This application bases on ASP.NET platform, users can easily interact with this system with a browser, no other clients are needed. Users in different roles will receive different distribution of tasks once after their landing.This paper discusses design and implementation methods of the Windows Workflow approval processes, and demonstrates the operation and testing of the whole system, summarizes the system, and looks forward to the future of technology in the field direction and the prospect of the industry.Key Words: Workflow;ASP.NET;Leave Approval System;目录第一章引言1第二章系统相关技术概述22.1 ASP.NET平台简介22.2 Windows Workflow Foundation简介32.2.1 程序逻辑和其他代码32.2.2 使用Windows Workflow Foundation42.3 工作流的运行原理72.3.1 工作流的组件72.3.2 基于ASP.NET的工作流8第三章系统总体设计113.1 系统概述及功能113.1.1 开发背景113.1.2 总体目标113.1.3 功能性需求123.1.4 非功能需求133.3 系统架构和层次划分133.4 系统运行需求15第四章系统详细设计164.1 系统分层细节164.1.1 UI层164.1.2 Model层以及DAL层174.1.3 BLL层184.2 数据库表设计254.2.1 Membership相关数据库表254.2.1 Workflow相关数据库表26第五章系统测试及运行结果275.1 功能测试275.2 运行结果29第六章总结和展望336.1 总结336.2 展望33致谢34参考文献35ContentsChapter 1Introduction5Chapter 2System related technologies outline22.1 Introduction to ASP.NET platform22.2 Introduction to Windows Workflow Foundation42.2.1 Relation between Logic and other codes42.2.2 Using Windows Workflow Foundation 42.3 The Operating principle of Windows Workflow72.3.1 Components of Windows Workflow72.3.2 Workflow based on ASP.NET platform8Chapter 3System overall design113.1 System profiler and function113.1.1 Development background113.1.2 Overall objective113.1.3 Functional requirements123.1.4 Non-functional requirements133.3 System architecture and module division133.4 System running requirement15Chapter 4System detail design164.1 System Stratified detail164.1.1 UI layer164.1.2 Model and DAL layer174.1.3 BLL layer184.2 Database design254.2.1 Membership Tables254.2.1 Workflow Tables26Chapter 5System testing and the running results275.1 Functional test275.2 Running result28Chapter 6Summarize and outlook336.1 Summarize336.2 Outlook33Acknowledgement34References35基于Windows Workflow的请假审批系统第一章引言在科技发展日新月异的今天,办公无纸化,自动化办公已经不是新鲜事情了。正是借助了计算机的自动化处理功能,很多单位从中获得了效率提升,节省成本等好处。可以说,计算机的应用已经进入了现今人们工作生活中的各个领域。随着计算机生产技术的提高,计算机的成本的降低,速度也有了非常大的提升。与此同时各种新技术的产生也使得实现很多需求更加简便。众所周知,各级和类的办公机构,总是把大量的人力物力花费在各种文件、信函、报刊文摘、资料卡片、会议纪要、人事档案、数据统计等信息管理上。所以,多少年来人们总是试图从这些既重要又繁琐的事务中解放出来。尤其是在科学技术高度发达和生产组织愈益复杂的今天,管理手段的现代化就显得愈加突出。随着电子计算机的广泛应用,特别是能进行中西文处理的微电脑的问世,人们多年的夙愿得到了实现。办公室人员可以通过计算机进行信息数据处理,帮助人们进行分析、决策;从而大大减轻了办公人员的劳动强度,提高了工作效率。电子计算机已成为办公自动化的核心1。工作流技术起源于二十世纪七十年代中期办公自动化领域的研究,由于当时计算机尚未在社会上普及,网络技术水平还很低的情况下这项技术并未取得成功。在进入90年代以后随着个人计算机、网络技术的普及和推广以及信息化建设的日益完善,使得工作流技术的研究与开发进入了一个新的热潮2。关于工作流自动化处理方面的技术如今已经较为普遍,而微软在.NET Framework 3.0中推出的新特性之一Windows Workflow Foundation无疑为工作流的开发提供了新的解决方案。因为基于ASP.NET编程作为当前比较主流的编程方式之一,所以Windows Workflow Foundation 在ASP.NET上的应用符合现在的需求。第二章系统相关技术概述2.1 ASP.NET平台简介ASP.NET是建立在微软新一代.Net平台架构上,利用公共语言运行库(CLR)在服务器后端为用户提供建立企业级Web应用服务的编程框架。 CLR(Common Language Runtime)是.NET Framework的核心组成,托管代码在其控制下运行。图2.1 为公共语言运行库的组成部分:图2.1 CLR的组成部分与更高级的编程语言相比,一个主要区别就是ASP.NET页面提供了完整的服务器端对象模型,可以再运行期间使用。ASP.NET可以在其环境中把页面上所有控件作为对象来访问。在服务器端,还可以访问其他.NET类,与许多有用 的服务集成起来。ASP.NET和PHP等其他相关技术有一定的相似性,但是它们有一个重要的区别就是ASP.NET支持C#,同时可以和NET Framework集成。ASP.NET几乎可以完成Windows Form上的所有功能,有很大的灵活性,因此生成HTML内容的ASP.NET通常称为WEB窗体3。 图2.2 为从客户端发送一个请求到服务器响应的示意图:图2.2 请求-响应过程示意图3 相对于ASP来说,ASP.NET在速度和效率上有优势。因为ASP.NET在服务器上首次运行时会进行编译然后执行,比起ASP的解释执行方式更有优势。如今ASP.NET技术已经得到了广泛的应用。在创建动态Web站点和基于Web的分布式应用上ASP.NET更是由于其功能的强大以及微软提供的雄厚技术支持而成为开发的首选之一。2.2 Windows Workflow Foundation简介2.2.1 程序逻辑和其他代码在使用Windows Workflow Foundation以前,工作流早已经在很多地方出现。工作流就是一项活动,只不过这个活动比一般意义上的活动更大、更复杂一些,因此往往是由较小的活动按照某种逻辑组合而成4。若干事实上可以把每一个含有执行一定逻辑的程序看成是工作流,因为这些程序是按照实现规定好的顺序以流的方式运行。但是通常人们在开发这些程序的时候,程序执行逻辑是和程序的其他代码混杂在一起的。这不是错误的方式,也并非不好的编程习惯,但是久而久之这样可能产生问题。因为随着需求的增加,程序的规模也越来越大,程序逻辑越来越复杂,其他功能性代码也越来越多。这样可能导致程序逻辑和其他代码都难以修改。2.2.2 使用Windows Workflow Foundation.NET Framework3.0保留了2.0的全部功能,并加上了下面4个新特性:Windows Presentation Foundation Windows Communication Foundation Windows Workflow FoundationWindows CardSpace .NET Framework 3.0 和2.0 的关系如图2.3所示:图2.3 .NET Framework 3.0 的组成5Workflow Foundation是开发基于工作流的应用系统的框架6。Workflow Foundation 提供了很好的工作流解决方案。Workflow Foundation中有两种流程模型:顺序模型和状态机模型。顺序模型(Sequential):形如If Else的模型,是在事先规定好的顺序下执行。顺序工作流是一个理想的操作表现方式,它顺序执行必须在上一活动执行之后下一活动才能执行,这种工作流适合于重复的,相对固定的操作7。状态机模型(State Machine):以事件(Event)为驱动,使得流程在转变范围内转换不同的状态。顺序模型和状态机模型的示意图如下:图2.4 顺序模型和状态机模型顺序模型状态机模型在很多时候,编程人员选择工作流模型的时候都会选择顺序工作流,因为这个形式的工作流符合人们平时的处理方式。由于可以直接预计运行的流程,几乎所有的运行逻辑都在预想的范围内,并且按照计划一步步执行,因此选择顺序工作流可以解决目前遇到的很大一部分问题。相对顺序工作流来说状态机工作流在下面的情况中适用:6(1) 依据工作流意外的事件来指定下一步(2) 当工作流活动的运行顺序不总是一样或无法预计的时候。(3) 当使用的是顺序工作流,并且当它为所有可能的执行路径建模变得越来越模糊的时候(也许这正是用错了工作流类型的信号)。如果符合上述4点中的一点或者几点的时候,就可以考虑使用状态机工作流类型。使用Windows Workflow之后,程序的执行逻辑就和其他代码分开来。程序的执行逻辑由事先定义好的工作流控制,接着由工作流引擎执行。这样就不会导致前面提到的程序逻辑和其他代码混杂在一起而难以修改的局面。2.3 工作流的运行原理2.3.1 工作流的组件宿主进程工作流自定义活动库Windows Workflow Foundation基本活动库和框架运行时引擎运行时服务 图2.5 Workflow Foundation的组成5 工作流共包含以下组件:a. 工作流本身这在上面已经提到了,工作流按照类型可分为顺序工作流和状态机工作流。b. 活动(Activity)这是工作流的最基本组成模块,其本质就是一个类。工作流运行的时候就是按照事先规划好的流程执行对应的活动,执行完最后一个活动就意味着该工作流结束。c. 宿主Windows Workflow Foundation的运行依赖于宿主,它必须在宿主应用程序的基础上才能正常运行。常见的可以作为工作流宿主的有:最基本的Windows Form,控制台应用程序,Web服务等。宿主应用程序可以通过传递Dictionary给工作流来实现参数或者内容的传递。d. 运行时服务工作流运行的时候工作流框架提供了多种运行时服务,其中常见的有:持久化服务(Persistence Service),追踪服务(Tracking Service)等。上述的几个部分组成了完整的Windows Workflow Foundation。在应用程序中使用工作流的时候应该注意到工作流管理的3个重要因素:(1)自动跟随运行路径(2)提供跟踪和监视信息(3)工作流和其他应用程序结合的能力82.3.2 基于ASP.NET的工作流前面提到,工作流可以基于Windows Form,控制台应用程序或者Web服务等。目前存在的大部分WF的应用都是基于Windows Form或者控制台应用程序,这能满足一定的需求。不过Windows Form和控制台应用程序并非当前主要编程形式, ASP.NET的应用是目前的热点9。所以开发基于ASP.NET的工作流应用相对前两者来说更有意义一些。工作流的生命周期直接由宿主决定。宿主可以通过调用一定方法启动工作流,这以后宿主可以通过其他API或者提供的服务对工作流进行维护。这在Windows Form里是无需其他考虑的,因为操作全部在本地,前台和后台工作是分开的,程序逻辑处理以及用户交互互相不影响。不过ASP.NET应用程序就需要多加考虑两点:首先是如何保留当前工作流的状态,其次是线程的问题。ASP.NET页面的特点是无状态的,而且Web窗体的生命一般很短,无法长期保存当前工作流状态,只有持久化当前工作流的状态才能实现长期保存状态的目的10。在其他情况下比如服务器重启,系统意外错误的情况下也必须将当前工作流持久化。IIS一般来说会以多线程的方式来处理任务。考虑到这一点,可能会导致出现问题:工作流相应的流程尚未结束,页面已经生成并呈现到客户端,导致错误的发生。所以,Workflow Foundation在ASP.NET上应用要解决的问题是:1. 状态持久化2. 线程同步问题这两个问题在微软提供的API中就有相应的解决方案。对工作流实例进行状态跟踪和持久化可以将TrackingService以及SqlWorkflowPersistenceService添加到工作流运行时服务。其作用是跟踪记录当前运行的工作流状态,之后把相应工作流状态保存到数据库,在需要的情况下可以快速恢复工作流的状态。下面是Tracking的使用实例using (WorkflowRuntime workflowRuntime = new WorkflowRuntime(); AutoResetEvent waitHandle = new AutoResetEvent(false); NameValueCollection parameters = new NameValueCollection();parameters.Add(EventSource, eventSource);workflowRuntime.AddService(new TerminationTrackingService(parameters);workflowRuntime.WorkflowCompleted += delegate(object sender, WorkflowCompletedEventArgs e) waitHandle.Set(); ;workflowRuntime.WorkflowTerminated += delegate(object sender, WorkflowTerminatedEventArgs e)Console. WriteLine(e.Exception.Message);waitHandle.Set();WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(SampleWorkflow);ManualWorkflowSchedulerService schedulerService = Instance.Start();waitHandle.WaitOne(); 线程问题的解决方案是使用ManualWorkflowSchedulerservice代替DefaultWorkflowSchedulerservice。下面是一个ManualWorkflowSchedulerservice的使用示例:WorkflowRuntime runtime = new WorkflowRuntime(); 6ManualWorkflowSchedulerService schedulerService = new ManualWorkflowSchedulerService();runtime.AddService(schedulerService);WorkflowInstance instance = runtime.CreateWorkflow(typeof(MyWorkflow);Instance.Start();/ the workflow instance is still not running!/ start it using the scheduler serviceschedulerService.RunWorkflow(instance.InstanceId); 如此一来,在运行时,系统将不会自动运行位于队列里的工作流实例。工作流中的每个工作流实例运行时返回执行(Executing)状态,这期间宿主应用程序一直被阻塞,等到当前工作流实例返回空闲状态才继续往下执行。这样一来,线程的同步性问题就不存在了。37第三章系统总体设计3.1 系统概述及功能3.1.1 开发背景电子审批的方式如今已经随处可见。很多企业和机构内部早已使用了一些协助审批的应用,这些应用在很大程度起了节约成本和提高效率的作用。将工作流转化为电子信息流,改变了以往手工文件流转的繁杂及办理随意性、责任不明确的问题11。采用电子审批的同时可以有效解决以前常见的拿着各种文件,单据,在各部门之间审批的麻烦现象。类的似请假审批或者报销审批等系统虽然目前已经有了非常多的产品或者应用,但是尝试用Windows Workflow Foundation这样的新技术来实现会更为方便。在微软已经推出相应的范例应用的前提下,本系统结合已有的资源,在ASP.NET的基础上使用Windows Workflow Foundation来实现学院请假审批流程的应用。3.1.2 总体目标本系统设计的目标是一个基于ASP.NET的请假审批系统,不同的用户组直接通过浏览器登录系统之后有不同的权限和操作。普通用户登录之后可以填写申请单,查看自己上一条申请的进展,或者继续填写上次未填写完的申请。而教研室主任用户组的人员登录之后可以看到普通用户所提交的申请单,进而决定批准与否。教研室主任批准之后还需院领导进一步批准。总体目标如下:(1) 解决工作流在ASP.NET上应用会出现的难点,即前面提到的,工作流状态保存和持久化、线程问题。(2) 普通用户登录系统后可以查看上一次申请的进展或者结果。(3) 系统登录功能应该简便明了并具备登录功能。(4) 在系统后台可以对当前用户组和用户权限进行设定和修改。(5) 系统代码应具备一定的健壮性和可维护性。(6) 界面应当美观,简便,易于掌握。3.1.3 功能性需求首先从用户体验的角度来看功能性需求:(一) 基本功能(1) 初始化:用户在浏览器中输入相应地址之后,显示首页。如果最近一次使用的时候并没有注销,则根据cookies中存储的信息直接自动登录。(2) 用户登录和身份验证:在上一步没有自动登录的话,这里则要求输入用户名和密码进行登录。输入正确则直接跳转到相应界面,错误的话会有相应的提示。(3) 主界面:在这里不同的用户会有不同的显示。普通用户有一个填写申请表的选项,同时可以查看上一条申请的进度。而其他用户组里的则只能看到提交上来的申请。(4) 填写请假申请表:普通用户组的用户在点击登录后界面上的“填写申请表”之后会跳转到此页面。在此页面里有“取消” ,“保存” , “提交”等按钮。点击“取消” :放弃本次修改点击“保存” :保存本次修改点击“提交” :提交本次申请申请表中除“备注”一栏可以为空之外其他栏目均不可以为空,日期不选的话默认是填写申请表的当天。(5) 处理申请:教研室主任或者分管院领导对提交上来的申请表进行处理。(6) 在教研室主任处理申请之后会有对应的邮件发送到申请者的邮箱里提示处理的结果。(二) 未来扩展功能展望(1) 手机短信功能:审批结果可以在第一时间发送到申请者的手机里,第一时间通知申请者。(2) 增加驳回的申请表重新修改提交的功能。(3) 多种风格用户界面:使用主题,让用户可以自由选择任意的主题,使用户体验更加舒适自由。3.1.4 非功能需求在用户权限和工作流几个重要的问题上微软均有现成的解决方案供借鉴,系统安全性和稳定性上有了一定的保证。不过,非功能性需求同样重要,主要的非功能性需求有:(1) 操作简便:界面应该一看到就容易上手,界面上应该具有导航条的功能,可以随时跳转到之前的每一步,方便用户进行操作;(2) 可靠和稳定:因为很大一部分操作都是在网络上进行,所以可能出现各种因为网络因素引起的错误,因此正在填写或者处理的申请表在遇到错误的情况下应该自动保存,以减少不必要的麻烦;(3) 安全性:因为涉及到用户角色,因此登录的时候应该多加注意。防止SQL注入等恶意攻击;为防止用户直接输入相应的URL查看不属于自己用户组的功能页面,在相应操作的页面提交的时候也对权限进行检验;(4) 兼容性:该系统必须适应现在的主流浏览器。在Internet Explorer上能使用的功能必须在Firefox上也能正常使用。页面显示的效果不应该相差太大;3.3 系统架构和层次划分该项目是基于ASP.NET的,可以认为分为以下几个层次:用户界面层(UI层),业务逻辑层(BLL),数据访问层(DAL),模型层(MODEL)。(1) UI层:主要是负责用户界面的呈现,包括显示图片,文字等,以及负责接受用户的输入,与用户进行直接交互。(2) BLL:业务逻辑层主要负责后台的逻辑。这层中包括已经规定好的工作流逻辑、各个页面之间的跳转以及不同角色对应的权限等。(3) DAL:负责数据的存储以及和数据库的交互。(4) Model:定义系统的数据模型,和数据库表相关。图3.1 系统分层及功能划分UIBLLDAL系统初始化界面呈现用户交互工作流逻辑页面跳转逻辑权限控制数据存取用户组管理Model提供数据模型图3.2 系统前后台功能请假审批系统后台前台用户注册登录填写申请表处理申请表保存提交申请表自动跟踪记录自动持久化用户管理邮件通知3.4 系统运行需求考虑到正常运行的需要,本系统运行需求:(1)Windows XP SP2及以上系统(2)SQL Server 2005 数据库(3)IIS, .NET Framework 3.0以上当前几乎所有的计算机都能满足这个要求,不过在不同机器上可能因为配置不同略有差异。在不同的浏览器上预览的结果同样也可能出现差别。第四章系统详细设计4.1 系统分层细节在第三章中已经对系统的分层以及系统主要功能进行了介绍。下面对一些关键性的部分进行介绍。4.1.1 UI层在这一层里主要负责用户界面,其中比较重要的功能有:用户注册,登录,不同用户组界面的呈现等。页面风格上使用了MasterPage来保持统一,也减少工作量。MasterPage里面包含了主要视图MultiView,MultiView里面有登录视图(sign-in View)和创建新用户的视图(RegisterView)。系统利用this.multiView.SetActiveView(this.signInView)等语句来切换当前的活动视图。创建新用户部分使用了默认的向导控件CreateUserWizard。使用CreateUserWizard控件的好处是不需要书写其他代码,之需要对其对应的属性进行配置即可。登录部分使用了loginView控件、login控件以及loginStatus控件。 这几个控件的特点如下所示:login控件:提供文本框、按钮和内建的身份验证功能,使开发人员通过简单的拖放操作向页面添加登录功能。loginView控件:该控件根据用户是否登录可以改变页面的外观,或者向不同的用户显示不同的页面。loginStatus控件:该控件向用户显示反馈信息,提醒用户他们是否已经登录站点。系统设定是只有登录后才能进行相应的操作,所有的操作都是在对应的用户角色下面进行的。所以有必要在每个页面里标示用户的身份。上述的有关于login的几个控件就可以实现这个功能了。下面是一小段有关于Login控件的相关代码: 当前用户     4.1.2 Model层以及DAL层该层主要负责定义系统的数据模型。该层使用了XSD格式的数据集当成数据存储的容器。几个比较重要的实体有:WorkItemDataset,UserActivitiesDataSet.xsd 。其中,WorkitemDataset的模型图如图4.1:图4.1 WorkitemDataset.xsdUserActivitiesDataSet.xsd的模型如图4.2所示:图4.2 WorkitemDataset.xsdDAL层则主要负责连接数据库以及进行一些语句查询等。4.1.3 BLL层该层主要负责后台大部分的逻辑。在这个应用中最重要的是工作流这一部分。在此应用中工作流的逻辑是:(1) 普通员工填写申请表并提交。(2) 教研室主任接收到申请表,对申请表进行处理,有批准和不批准两种情况。(3) 教研室主任批准的情况下申请单会被送往分管院领导处进行进一步批准;不批准的情况下则流程到此结束。(4) 分管院领导处理申请。其示意图如图4.3所示:填写申请表教研室主任审批分管院领导审批申请通过申请未通过图4.3 审批程序示意图批准不批准批准不批准BLL层还负责对工作流的启动,维护以及注册相关服务。例如:private static WorkflowRuntime runtime;runtime = new WorkflowRuntime(); Helper.Runtime = runtime; Helper.UserActivityService = UserActivityService.Singleton; runtime.AddService(new UserActivityTrackingService(); runtime.AddService(new SqlWorkflowPersistenceService(connectionString); runtime.AddService(new SharedConnectionWorkflowCommitWorkBatchService(connectionString); runtime.AddService(new ManualWorkflowSchedulerService(true); runtime.StartRuntime();与DefaultWorkflowSchedulerService不一样的是,ManualWorkflowSchedulerService需要一个额外的方法调用来启动实例的执行甚至是在调用WorkflowInstance.Start方法之后也是如此。RunWorkflow方法使用一个实例GUID,并且产生一个阻塞调用,直到动作流归还控制给宿主应用程序。记住,如果RunWorkflow方法没有被宿主调用,那么工作流实例永远不会执行6。 用户组和权限方面:在本系统中使用了.NET Framework 2.0中的新元素Membership作为用户身份验证的机制。在 ASP.NET 应用程序中,Membership 类用于验证用户凭据并管理用户设置(如密码和电子邮件地址)。Membership 类可以独自使用,或者与 FormsAuthentication 一起使用以创建一个完整的 Web 应用程序或网站的用户身份验证系统。Login 控件封装了 Membership 类,从而提供一种便捷的用户验证机制5。 Membership 类主要包含了以下的功能: (1) 创建新用户,并直接将用户信息存储进数据库。 (2) 对要登录的用户进行身份验证。(3) 对密码进行修改。用户也可以使用密码提示问题及回答来恢复或者重设忘记的密码。下面是MSDN上提供的对Membership的配置范例: 在这一段范例中,修改了默认的Provider,添加了SqlProvider,这样就可以直接把Membership的存储数据库设置成名为MySqlServer的Sql Server数据库实例。在本系统中,web.config中的Membership节点是这样定义的: 其中的几个参数介绍如表4.1所示:表4.1 Membership配置参数参数名属性值以及作用enablePasswordRetrievalTrueFalse密码以明文保存存储的密码被加密,用户无法通过反编码检索自己的密码enablePasswordResetTrueFalse允许用户重置密码不允许用户重置密码requiresQuestionAndAnswerTrueFalse在注册的时候需要同时输入密码提示问题和答案注册的时候不要求输入密码提示问题以及答案requiresUniqueEmailTrueFalse数据库中的E-mail地址保持唯一数据库中的E-mail地址不需要保持唯一maxInvalidPasswordAttempts属性值代表最大的密码尝试次数。超出这个次数之后该账户将被暂时锁定。minRequiredPasswordLength对注册的时候输入密码的最小长度进行规定。少于这个位数的密码不被接受,注册不能成功。minRequiredNonalphanumericCharacters有效密码中必须包含的最少特殊字符数邮件发送部分:在申请单被处理之后,用户能在第一时间收到系统发出的邮件,提示当前申请被处理的结果。C#中发送邮件可以采取这两种方法之一:(1) 利用Socket编程实现发送邮件。(2) 利用System.Net.Mail里面提供的方法进行发送。由于使用Socket的方式在技术上需要比较大,同时考虑到在本系统里使用第二种方案会更为合适,因此采用了第二种。这种方法使用到了SMTP服务器。SMTP:简单邮件传输协议(Simple Mail Transfer Protocol),协议包含一系列用于由源地址到目的地址传送邮件的规则,其作用是控制信件的中转方式。SMTP的模型如图4.4所示:用户文件系统发送SMTP接收SMTP文件系统图4.4 SMTP模型在本应用中对应的发送邮件的代码为:protected void sendMail(string mailContent) try MailAddress sender = new MailAddress(senderXX.com); /发送者邮箱 string s = receiverXX.com; MailAddress receiver = new MailAddress(s);/收信人邮件地址 MailMessage message = new MailMessage(sender, receiver); /构造邮件信息体 message.Subject = 审批结果; message.Body = mailContent; string smtp = smtp.X

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论