Hi, 大家好!!!!
本人基础课,不经意间在网上发现了cnBlogs这样有趣的地方,于是也来注册了一个账户,大家一起来互相学习学习,就酱紫。
言归正传本人就发一篇处女作吧,大家在做权限系统的时候如果不喜欢MS提供的东东的话,是不是自己也会尝试一下做个小小的权限模块呢,想当年ASP时代的时候可都是在页面上硬编码的呢,好了,废话少说,下面就利用HttpModule模块做一个通用一点的权限系统(可以精确到页,基于角色也可以的)可能已有不少 童鞋 做过这方面的尝试了,下面是代码:
Imports Microsoft.VisualBasic
Public Class RoleControl
Implements IHttpModule '实现一个HTTPMODULE接口
Public Sub Dispose() Implements System.Web.IHttpModule.Dispose
End Sub
Public Sub Init(ByVal context As System.Web.HttpApplication) Implements System.Web.IHttpModule.Init
'注册http请求的第一个事件(注意页面的执行顺序,注册事件的时候不要在页面Page_Load以后的事件)
AddHandler context.BeginRequest, AddressOf Me.Application_BeginRequest
End Sub
Private Sub Application_BeginRequest(ByVal source As Object, ByVal e As EventArgs)
Dim application As HttpApplication = CType(source, HttpApplication)
Dim context As HttpContext = application.Context
'获取当前访问路径(当然你也可以获取文件名来判断)
Dim url As String = context.Request.Url.AbsolutePath.ToLower()
'如果当前访问的路径是guest文件夹里面的文件
If url.Contains("/guest/") Then
'获取Cookies
Dim myCookies As HttpCookie = context.Request.Cookies("BlogName")
'如果Cookies为空
If myCookies Is Nothing Then
context.Response.Redirect("~/re_登陆.aspx")
End If
End If
End Sub
End Class
呵呵,其实代码挺简单的,大家如果有更好的实现的话,留言给我哦
最后贴一个在网上找到的页面事件执行顺序的图片 : )
浙公网安备 33010602011771号