比方一个系统有老师和学生两个用户,必须登录了才能操作,但是有些页面是两种用户都可以登录的,因此做了一个PageBase类判断登录,如:public class PageBase : System.Web.UI.Page
{
    //页面基类,在线学生或老师
    protected internal Student OnlineStudent;
    protected internal Teacher OnlineTeacher;    public PageBase()
{
//
//TODO: 在此处添加构造函数逻辑
//        //iStudentID,获取cookie中的学生ID;iTeacherID,获取cookie中的老师ID
        int iStudentID = Common.ObjToInt(HttpContext.Current.Request.Cookies["StudentID"], 0);
        int iTeacherID = Common.ObjToInt(HttpContext.Current.Request.Cookies["TeacherID"], 0);
        if (iStudentID == 0 && iTeacherID == 0)
        {
            //没有登录相关代码,退出
            return;
        }
        else if (iStudentID > 0 && iTeacherID > 0)
        {
            //不允许学生和老师两种用户同时登录的情况
            return;
        }
        else
        {
            if (iStudentID > 0)
            {
                Student student = new Student();
                student.GetStudentInfo(iStudentID);
                if (student.StudentID > 0)
                {
                    OnlineStudent = student;
                }
            }
            if (iTeacherID > 0)
            {
                Teacher teacher = new Teacher();
                teacher.GetTeacherInfo(iTeacherID);
                if (teacher.TeacherID > 0)
                {
                    OnlineTeacher = teacher;
                }
            }
        }
}
}/// <summary>
///TeacherPage,老师页面基类
/// </summary>
public class TeacherPage : PageBase
{
    public TeacherPage()
    {
        //
        //TODO: 在此处添加构造函数逻辑
        //
        if (OnlineTeacher.TeacherID <= 0)
        {
            //没有老师登录,退出
            return;
        }
    }
}现在是这样做的,比如某个页面只能老师登录,那么此页面就是public partial class _Default : TeacherPage,继承于TeacherPage,假如在PageBase里面已经判断出了用户没有登录(也就是Request.Cookies["TeacherID"]为空),这个时候我希望TeacherPage构造函数里面的东西就不要继续执行了,请问应该怎么做呢(return是不行的)?
小弟.NET很菜,期待各位的解答,或者有什么更好的基类方法传授一下,谢谢,呵呵!

解决方案 »

  1.   

    虽说Response.End()可以控制输出,但是程序好像还是执行完的,是吗?
      

  2.   

    System.Threading.Thread.CurrentThread.Abort();
      

  3.   


    public class PageBase : System.Web.UI.Page
        ...............
        if (iStudentID == 0 && iTeacherID == 0)
            {
                //意思就是希望在这里直接退出,不在执行继承于PageBase的TeacherPage构造函数继续执行,而return是达不到要求的
                 return;
            }
        .................