已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于ASP.NET的自定义日志系统的开发与研究基于ASP.NET的自定义日志系统的开发与研究何俊(苏州大学 计算机科学与技术学院 江苏 苏州 210006)摘要 介绍了利用ASP.NET和VB.NET技术开发的用户日志管理系统,实现了对自定义格式数据库系统的动态管理,使得对日志信息的管理更加及时、高效,提高了工作效率。关键词 ASP.NET;VB.NET;自定义;日志;数据库1 自定义日志管理的数据库设计自定义日志系统是校园网一卡通系统中机房刷卡子系统的一个基于B/S开发的功能模块,该系统的后台数据库为自定义格式的数据库系统。数据库中主要的用户表和日志表的结构如下: Structure FixUse用户表 Public ID As Integer用户ID Public NoCard() As Byte 卡号 Public NoUser() As Byte 学号 Public Name() As Byte 姓名 Public PSW() As Byte 密码 Public Dept As Integer 部门ID Public Attr As Integer 机房总管 Public AttreEx As Integer 机房总管扩展 Public Money As Integer 帐户金额 Public Power As Integer 用户权限 Public PowerEx As Integer 用户权限扩展 Public MoneyEx As Integer 帐户金额扩展 Public Rev() As Byte 系统, End Structure Structure FixLog上下机、交费日志表 Dim ID As Integer流水号 Dim Type As Integer事件类型 Dim DateTime() As Byte上机开始时间,若为交费,则为空 Dim MAC() As Byte指定上机IP地址 Dim ManagerID As Integer收费管理员ID Dim UserID As Integer用户ID Dim Money As Integer消费或交费金额 Dim ID_EquipMent As Integer上机设备号 Dim DateTimeEnd() As Byte 下机时间 Public Location As Int64系统保留 Dim revex() As Byte 保留 End Structure2 日志系统的开发原理及实现技术2.1 自定义数据库开发原理采用ASP.NET和VB.NET三层模型开发,以Web应用程序的方式运行该模块。常用三层开发模型(ASP.NET模型)如图1所示。UI层负责与用户交互,接收用户的输入并将服务器端传来的数据呈现给客户。业务逻辑层负责接收浏览器传来的请求并将请求传给数据层,同时将请求处理结果发给浏览器。它由Web表单、XML Web服务和组件服务组成。其中Web表单是ASP.NET应用程序的核心所在,它是向客户呈现数据和信息的基础,也是响应和处理客户与显示的Web表单交互生成的信息和数据的基础。系统日志管理模块对用户上机、交费记录实现查找、统计、分析、图示、打印等功能。业务逻辑层包装在用VB.NET开发的后台类库中。本自定义日志管理系统功能模块结构如图2所示。因为本系统是面向所有用户,包括系统管理员,辅助管理员,和普通上机学生,所以在功能上必须对不同用户加以限定。查询该用户密码和余额查询该用户上机、交费日志统计、图示、打印、上机、交费查看用户数据库总余额按日期顺序重新排序日志文件,然后写入日志文件查某个用户的密码、余额查询图2 系统功能模块结构由图2可知,普通用户登录该系统后,只能查询统计该用户的上机、交费信息。辅助管理员一般指计算中心聘用的那些临时工、或勤工俭学的学生,他们协助管理员进行机房的管理。根据管理的需要他们有一些管理级别的权限,但有些重要的统计信息他们不能获得。2.2 自定义日志系统实现技术2.2.1 日志系统流程图网站页面结构(前台)流程图如图3所示。2.2.2 技术细节(1)本模块首先对系统实时产生的日志文件进行合并。因为每天都会有许多新的日志文件生成,所以系统自动检索有无新的日志文件产生,若有则将其合并到总库中,并按日期建立索引,同时删除已合并的日志文件。(2)面向学生、面向管理员及其验证。在ASP.NET中,身份验证通过配置文件Web.config中的authentication小节实现,Forms表示通过页面表单验证,即输入的用户和密码是正确的,才能访问后续的页面表单。否则将指向登录页面。通过会话对象Session确定用户属于哪一个级别,即Session(LoginType) = LoginType,LoginType取NormalUse或NormalManager或SuperManager。登录验证的主要代码如下:LoginType = UseServer.LoginIn(txtName.Text.Trim, txtPass.Text.Trim) 获得权限级别 Session(LoginType) = LoginType将权限级别存储在会话中 Select Case LoginType Case DataType.Data.LoginType.SUPUERMANAGER高级管理员 FormsAuthentication.RedirectFromLoginPage(txtName.Text, False) clsDebug.DebugFileOut(txtName.Text & vbTab & Now.ToString) Response.Redirect(entertime.aspx)转向后续页面 Case DataType.Data.LoginType.NORMALMANAGER, DataType.Data.LoginType.NORMALUSER辅助管理员或一般用户,在后续页面中通过Session来区别权限 FormsAuthentication.RedirectFromLoginPage(txtName.Text, False) clsDebug.DebugFileOut(txtName.Text & vbTab & Now.ToString) Response.Redirect(entertime.aspx) Case DataType.Data.LoginType.NOUSER用户不存在 txtName.Text = lblMsg.Text = 用户名不存在 End Select(3)高速缓存用户和日志。用户和日志文件在运行一段时间后,通常都变得很大,20M甚至40M,这样大的数据,如果每次都要进行磁盘访问,将耗费大量时间,所以必须进行高速缓存,同时而又不能影响数据实时性的需求。在ASP.NET中,可通过Cache.Insert方法将用户对象高速缓存,在缓存超时后,系统将自动回调,更新缓存数据,这样就实现缓存的自动化。我们可将超时时间的限定设置在Web.Config的appSettings小节中。下面是日志对象缓存的事例代码:Private Sub RemovedCallBackLog(ByVal key As String, ByVal Value As Object, ByVal Reason As CacheItemRemovedReason) 当缓存超时,自动调用该函数 BuildLogCache()End SubPrivate Sub BuildLogCache()重建日志缓存,重新读取磁盘数据到内存 Dim UseServer As clsUseServer用户服务对象,处理用户数据的各种需求 Dim LogServer As clsLogServer日志服务对象,处理日志数据的各种需求 Dim strUseMsg As String给用户显示的信息 Dim CacheTime As String日志在内存中缓存的时间 Dim onRemove As New CacheItemRemovedCallback(AddressOf Me.RemovedCallBackLog) 回调 Try If IsNothing(Cache(UseServer) Then BuildUseCache()若用户缓存为空,则重建用户缓存(日志服务对象中要使用用户服务对象) UseServer = CType(Cache(UseServer), clsUseServer) 将用户服务对象缓存 clsLogFunction.LogHebin() 在管理员登录时,合并日志文件 LogServer = New clsLogServer(UseServer) 从用户服务对象新建日志服务对象CacheTime = ConfigurationSettings.AppSettings(LogCacheTime) 从Web.config中获得缓存日志对象的时间 Cache.Insert(LogServer, LogServer, Nothing,DateTime.Now.AddMinutes(CInt(CacheTime), TimeSpan.Zero, CacheItemPriority.Normal, onRemove)将日志服务对象缓存 Catch ex As Exception clsDebug.DebugFileOut(ex.Message)记录异常信息 End TryEnd Sub(4)Web打印和图示技术的实现。Web打印通过ActiveReports组件完成,该组件与.NET开发环境完美集合,提供各种服务器控件通过后台代码完成数据的检索和显示。图示是采用绘图对象Bitmap、Graphics、Pen等在服务器端手工完成条图、线图、饼图的绘制,然后用BitMap.Save(Response.OutputStream, ImageFormat.Gif)方法将图发送到客户端的IE中。(5)网络硬盘服务模块。通过.net提供的对象DirctoryInfo、FileInfo、Dirctory、File在服务器端实现文件、目录的创建保存等工作。客户端通过Cookies保存学生的ID即卡号,当学生第一次运行网络硬盘服务时,将根据部门和用户ID自动在服务器端创建学生目录,以后可上载、下载文件、在线编辑文本文件等操作。3 结束语该自定义日
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 藻类修复水体-洞察与解读
- 共享出行中的大数据分析技术-洞察与解读
- 生物质热解技术研究-洞察与解读
- 金融云安全架构-洞察与解读
- 运营效率优化策略-洞察与解读
- 2026中工国际工程股份有限公司招聘考试备考题库及答案解析
- 2026一年曲靖供电局及所属县(区)级供电企业项目制用工招聘70人笔试参考题库及答案解析
- 2026广西崇左天等县天鸿投资集团有限公司招聘工作人员3人笔试备考试题及答案解析
- 2026智新半导体有限公司招聘笔试模拟试题及答案解析
- 2026上海中期期货股份有限公司市场化招聘3人笔试备考题库及答案解析
- 2023-2024学年安徽省六校教育研究会高一上学期新生入学素质检测语文试题(解析版)
- 钢结构施工技术指导手册
- 药品不良反应上报分解课件
- 托业考试TOEIC词汇汇总
- 特殊儿童学校适应能力评定量表
- 《电阻的串联和并联》单元专题型复习课设计
- 职业考证注册营养师资料食品营养学课件2.0-食物的体内过程
- GB/T 4677-2002印制板测试方法
- GB/T 28387.4-2012印刷机械和纸加工机械的设计及结构安全规则第4部分:书籍装订、纸加工和整饰机械
- 最新隧道施工安全教育培训课件
- 爱朋全自动泵操作教学课件
评论
0/150
提交评论