我写了一个基类:Page.cs
public class Page : System.Web.UI.Page
{
   //验证用户权限 
    public void Permission()
   {
       .......
    }
}现在所有的aspx页面都从Page继承,但还是得需要在子类里面执行Permission()方法才能炎症用户权限,有没有办法使子类一继承Page,就能够在基类里面自动执行Permission(),根据不同的情况在有需要的情况下,我才重载Permission()方法.

解决方案 »

  1.   

    什么叫 子类一继承Page,就能够在基类里面自动执行Permission()看不懂~
      

  2.   

    把Permission()的代码放构造函数中。
      

  3.   

    在基类重写override void OnInit方法,把方法添加进去
      

  4.   

    public class Page : System.Web.UI.Page
    {
       //验证用户权限 虚函数,想要修改可以在继承类中重载该函数
        protected virtual void Permission()
       {
           .......
        }
       
        protected override void OnInit(EventArgs e){
             base.OnInit(e);
             Permission();
        }
    }
      

  5.   

    放在构造函数里面不行,override void OnInit()方法,我是这样写的,好想也不行 protected override void OnInit(EventArgs e)
    {
    Permission();
    base.OnInit(e);
    }
      

  6.   

    把 permission放在基类中,传递关于权限的参数到基类中,让基类去判断。然后返回值
      

  7.   

    子类:
    public class Page : System.Web.UI.Page
    {
       public Page()
    {
         string pagename="page1";
         base.Permission(pagename);
           
    }
          
        
    }基类
    {
    protected void Permission(string pagename)
    {
       if(pagename=='')
         throw new Exception('gfhfgh');
    }
    这样是否能够将解决问题呢?
      

  8.   

    回复: mrjiangyan(JavaKiller)    Permission是放在基类中的,而且权限参数是在子类中指定,基类里面实现权限判断的逻辑,现在关键是如何让子类继承基类的权限验证功能,而不用在子类里面去一一指定.回复 Seeko0(阿 枫(www.vivichen.com))     我将你写的代码测试过了,仍然不行,在子类里面(aspx页面)中没有执行Permission()中的逻辑,如果在子类的Page_Load()中加上Permission(),怎权限验证就能执行
      

  9.   

    回复:mrjiangyan(JavaKiller)   您理解错我的意思了....我不想在子类里面去先关于权限验证的代码,只需要指定该页面的参数就可以了,因为如果有很多页面的话,万一我的权限验证的名称或方法改变后,我修改的工作会很大
      

  10.   

    很简单,继承page,然后在他的构造函数中验证权限,然后再继承这个新创建的的page类
      

  11.   

    我最近也在研究这个问题,我们不妨探讨探讨,msn:[email protected]