使用HttpModule实现权限系统

  开发系统的时候,应用系统的权限控制是非常重要的一个部分。在Asp中,要实现权限的控制是比较麻烦的事件,因为我们必须要在每个需要控制权限的Asp页面添加权限控制代码,从而控制客户对页面的访问。这样带来的问题,除了编写大量的重复代码外,由于权限控制部分同业务处理部分的模块紧密耦合在一些,对权限控制模块的修改,往往又会带来大量的修改工作,甚至造成大量的Bug。

  所以,我们现在需要将权限控制和业务处理模块进行解耦,使得两个部分可以独立开发和修改,而不会相互影响,或者,将影响减到最低。在Asp.net中,我们可以使用HttpModule实现。

public class RightChecker
{
    public static bool HasRight(User user,Module module)
    {
        //进行权限验证
    }
}
public MyModule:IHttpModule
{
    public void Init(HttpApplication application)
    {
        application.AcquireRequestState+= new EventHandler(this.Application_AcquireRequestState);
    }
    public void Application_AcquireRequestState(Object source,EventArgs e)
    {
        HttpApplication application=(HttpApplication)source;
        User user = application.Context.Session["User"];//获取User
        string url = application.Context.Request.Path;//获取用户访问的页面
        Module module = //根据Url得到所有模块
        if()
        {
            application.Context.Server.Transfer("Error.aspx");
        }
    }
    public void Dispose()
    {}
}

posted on 2011-10-21 00:51  AngelLee2009  阅读(790)  评论(0编辑  收藏  举报

导航