使用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()
    {}
}

你可能感兴趣的:(Module)