自定义日志系统是校园网一卡通系统中机房刷卡子系统的一个基于B/S开发的功能模块,该系统的后台数据库为自定义格式的数据库系统。数据库中主要的用户表和日志表的结构如下:
Structure FixUse '用户表
Public ID As Integer '用户ID
<VBFixedArray(15)> Public NoCard() As Byte '卡号
<VBFixedArray(15)> Public NoUser() As Byte '学号
<VBFixedArray(15)> Public Name() As Byte '姓名
<VBFixedArray(15)> 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 '帐户金额扩展
<VBFixedArray(31)> Public Rev() As Byte '系统,
End Structure
Structure FixLog '上下机、交费日志表
Dim ID As Integer '流水号
Dim Type As Integer '事件类型
<VBFixedArray(5)> Dim DateTime() As Byte '上机开始时间,若为交费,则为空
<VBFixedArray(5)> Dim MAC() As Byte '指定上机IP地址
Dim ManagerID As Integer '收费管理员ID
Dim UserID As Integer '用户ID
Dim Money As Integer '消费或交费金额 Dim ID_EquipMent As Integer '上机设备号
<VBFixedArray(5)> Dim DateTimeEnd() As Byte '下机时间
Public Location As Int64 '系统保留
<VBFixedArray(13)> Dim revex() As Byte '保留
End Structure
日志系统的开发原理及实现技术 1、自定义数据库开发原理
采用ASP.NET和VB.NET三层模型开发,以Web应用程序的方式运行该模块。常用三层开发模型(ASP.NET模型)如图1所示。UI层负责与用户交互,接收用户的输入并将服务器端传来的数据呈现给客户。业务逻辑层负责接收浏览器传来的请求并将请求传给数据层,同时将请求处理结果发给浏览器。它由Web表单、XML Web服务和组件服务组成。其中Web表单是ASP.NET应用程序的核心所在,它是向客户呈现数据和信息的基础,也是响应和处理客户与显示的Web表单交互生成的信息和数据的基础。
系统日志管理模块对用户上机、交费记录实现查找、统计、分析、图示、打印等功能。
业务逻辑层包装在用VB.NET开发的后台类库中。
本自定义日志管理系统功能模块结构如图2所示。因为本系统是面向所有用户,包括系统管理员,辅助管理员,和普通上机学生,所以在功能上必须对不同用户加以限定。
查询该用户密码和余额
查询该用户上机、交费日志
统计、图示、打印、上机、交费
查看用户数据库总余额
按日期顺序重新排序日志文件,然后写入日志文件
查某个用户的密码、余额
查询
图2系统功能模块结构 由图2可知,普通用户登录该系统后,只能查询统计该用户的上机、交费信息。辅助管理员一般指计算中心聘用的那些临时工、或勤工俭学的学生,他们协助管理员进行机房的管理。根据管理的需要他们有一些管理级别的权限,但有些重要的统计信息他们不能获得。
2、自定义日志系统实现技术
2.1 技术细节
(1)本模块首先对系统实时产生的日志文件进行合并。因为每天都会有许多新的日志文件生成,所以系统自动检索有无新的日志文件产生,若有则将其合并到总库中,并按日期建立索引,同时删除已合并的日志文件。
(2)面向学生、面向管理员及其验证。在ASP.NET中,身份验证通过配置文件Web.config中的authentication小节实现,Forms表示通过页面表单验证,即输入的用户和密码是正确的,才能访问后续的页面表单。否则将指向登录页面。 <authentication mode="Forms" >
<forms name="cookie-name" path="/" loginUrl="/webchongyuan/login.aspx" protection="Encryption" timeout="10" />
</authentication>
通过会话对象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 Sub
Private 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 Try
End 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自动在服务器端创建学生目录,以后可上载、下载文件、在线编辑文本文件等操作。
结束语 该自定义日志管理系统在苏州大学、郑州大学、河南大学等高校校园网一卡通系统中作为子系统实现,运行稳定、安全,获得了较好的经济效益。
相关推荐
通过以上步骤,你可以构建出一个功能完善的ASP.NET自定义评分系统。这个系统不仅可以收集用户反馈,还能作为数据分析的依据,帮助优化网站内容和服务。在实际开发过程中,要根据项目需求进行调整,确保系统的灵活性...
【标题】:“基于ASP.NET的企业网站后台管理系统源码”是一个以ASP.NET技术为核心的网站后台管理系统的源代码集合。这个系统通常包含了用户管理、权限控制、内容发布、数据管理等多种功能,用于支持企业网站的日常...
通过这个基于ASP.NET的同学录项目,开发者可以深入理解Web应用程序的开发流程,包括前端界面设计、后端业务逻辑处理、数据库操作以及系统部署等多个环节,这对于提升.NET开发技能非常有帮助。同时,这个项目也为学习...
通过学习和分析这个基于ASP.NET的图书管理系统源码,不仅可以掌握Web开发的基本技能,还能深入理解软件工程中的设计原则和最佳实践,对于提升编程能力有着极大的帮助。对于初学者来说,这是一个很好的起点,可以在...
【C# 基于asp.net图书管理系统】是一种基于微软.NET框架开发的Web应用程序,用于高效管理和维护图书馆的各类资源信息。此系统采用C#作为后端编程语言,结合ASP.NET技术,为用户提供友好的界面和强大的功能。下面将...
在这个基于ASP.NET的图书管理系统中,我们可以通过利用其强大的特性和工具来实现对图书的高效管理和操作。 1. **系统架构与设计** ASP.NET 图书管理系统通常采用三层架构设计:表现层(UI)、业务逻辑层(BLL)和...
【标题】:“基于asp.net mvc的开源网站管理系统”是一个以微软的ASP.NET MVC框架为核心技术构建的开放源代码的网站管理平台。该系统旨在提供一个灵活、可扩展且易于维护的解决方案,使得开发者和非技术人员能够高效...
ASP.NET日志管理系统是一款专为IT...综上所述,ASP.NET日志管理系统是一个强大且全面的日志管理解决方案,它提供了丰富的功能,满足了企业对日志管理的需求,同时注重用户体验和安全性,是开发和运维团队的重要工具。
【基于ASP.NET的博客系统】是一个使用微软的ASP.NET技术和SQL Server 2000数据库构建的网络应用程序,主要用于创建、发布和管理个人或集体的在线日志,即博客。这个系统结合了Web开发的强大功能与数据库管理的高效性...
在这个“基于ASP.NET的工作日志管理系统源码”中,我们可以深入理解ASP.NET的核心技术和如何应用于实际项目开发。 1. **ASP.NET架构** ASP.NET基于.NET Framework或.NET Core,提供了多种编程模型,如Web Forms、...
【基于ASP.NET的企业人事管理系统】 ASP.NET是由微软公司开发的一种Web应用程序框架,它为企业级的Web应用开发提供了强大而高效的支持。在这个基于ASP.NET的企业人事管理系统中,我们深入探讨了如何利用这一技术来...
Asp.NET 客户管理系统是一种基于Microsoft的Asp.NET技术构建的应用程序,主要用于企业或组织管理其客户数据和交互。Asp.NET是一个强大的Web应用程序框架,它提供了丰富的功能和工具,便于开发人员构建动态、安全且...
在本项目“基于ASP.NET的学生信息管理系统源代码”中,开发者利用ASP.NET的强大功能来实现学生信息的管理。 1. **ASP.NET Web Forms**: ASP.NET Web Forms是ASP.NET框架的核心部分,它允许开发者创建动态、交互式的...
2. **路由**:ASP.NET MVC中的路由系统允许自定义URL结构,以提供更友好的用户体验和SEO优化。 3. **视图**:学习如何创建和编辑Razor视图模板,展示公告内容,包括标题、发布日期和内容。可能还需要实现分页和搜索...
《基于ASP.NET MVC技术的图书管理系统的设计与实现》是一份深入探讨如何利用ASP.NET MVC框架构建图书管理系统的专业文档。ASP.NET MVC(Model-View-Controller)是一种广泛应用于Web应用程序开发的设计模式,它将...
ASP.NET资产管理系统源码是一个基于C#编程语言和.NET框架构建的应用程序,旨在帮助企业或组织高效地管理和跟踪其固定资产。这个系统提供了全面的功能,包括资产登记、分类、追踪、借用归还、折旧计算以及定期盘点等...
【描述】"基于ASP.NET的仿百度云盘源码.zip"是一个包含所有必要代码和资源的压缩文件,用于创建一个自定义的云存储平台。这个项目不仅展示了ASP.NET的用法,还涉及到了文件上传、下载、管理、分享等功能,这些都是云...
在线考试系统是一种利用互联网技术实现的远程测试平台,它基于ASP.NET技术和C#编程语言进行开发,能够提供灵活、高效且安全的考试环境。本文将深入探讨基于ASP.NET的在线考试系统的实现细节、核心技术以及其在教育和...
ASP.NET 提供了全局异常处理和日志记录接口,开发者可以自定义实现,以便跟踪和调试问题。 8. **性能优化**: ASP.NET 提供了缓存、输出缓存、会话状态管理等功能,帮助优化应用程序性能。对于大型系统,还可以...
"基于ASP.net企业员工档案管理系统源码.zip"这个标题表明这是一个使用ASP.NET技术开发的企业级员工档案管理系统的源代码压缩包。ASP.NET是微软公司推出的Web应用程序框架,用于构建动态网站、Web应用程序和服务。此...