当前位置:首页 > 网络编程 > WEB编程 > ASP.net >  开发基于ASP.NET的自定义日志系统(2)

 开发基于ASP.NET的自定义日志系统(2)

点击次数:20 次 发布日期:2008-11-26 14:00:13 作者:源代码网
源代码网推荐      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自动在服务器端创建学生目录,以后可上载、下载文件、在线编辑文本文件等操作。
源代码网推荐  
源代码网推荐    结束语
源代码网推荐  
源代码网推荐    该自定义日志管理系统在苏州大学、郑州大学、河南大学等高校校园网一卡通系统中作为子系统实现,运行稳定、安全,获得了较好的经济效益。  做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华