lu1983
西人以得利而重义,西人以得势则重理

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

呵呵,其实代码挺简单的,大家如果有更好的实现的话,留言给我哦

最后贴一个在网上找到的页面事件执行顺序的图片 : )

posted on 2008-06-16 10:27  基础课  阅读(506)  评论(0)    收藏  举报