网站分为前台用户和后台管理,其中后台管理页面比较多,前台我用Server.Execute("checkLogin.aspx?userID="+userID);实行身份验证,方式是用session验证的,checkLogin.aspx的后台代码如下:using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class checkLogin : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string stuID = Request.QueryString["userID"].ToString();
        if (Session["isLogin"] == null || Session["isLogin"].ToString() != "1"||Session["userID"]==null||Session["userID"].ToString()!=userID)
        {
            Response.Redirect("../login.aspx");
        }
    }
}对于普通用户可以实现身份验证,但是对于后台页面,用同样的方法就不行,dropdownlist全部不能回传,即联动失效,也不知道什么原因,但是去掉Server.Execute("checkLogin.aspx);就行了;
于是改为form验证,但是又有新问题,因为网站有两个login.aspx,一个是根目录下的普通用户登录,还有一个管理目录admin下的login.aspx,页面跳转又成了新问题,到底去哪一个呢?有同志帮忙,说用基类,页面继承,但小弟初学,第一次写,不知道怎么写,也不知道用什么方法好,大家给一个建议,最好给我一个例子啊,我全部是自学的,只好求助大家了,在这里耽搁了一两天了;要方便验证,及验证内容修改,我选择的是session,因为网站需要多个管理员,每个管理员有不同的权限等级,所以后台的页面,对于不同的管理员的权限等级,有的可以访问,有的是无权访问的。我想在类中写成一个public函数,如checkLogin()通过这个函数,读出session里的用户名及管理权限等级,然在每个页面里调用,判断该管理员是否是合法访问及等级是否有权访问该页面,如果没有则跳转到登录页面,不知道这样可不可以,我没有写出来,没有办法在这个函数读出session里的值。请大家帮帮忙,谢谢呀。。我不知道我说清楚了没有。。

解决方案 »

  1.   

    如果你是在用.net的话,最好还要要忘记asp的一些思想.
    如果说的这个应用没有启用角色的话,你可以使用forms窗体认证.现实起来方便..安全.代码量少.支持多用户.
    如果你是用vs2005可以使用membership来做..
    至于继承一个page类,我觉得这样的做法太麻烦了.
      

  2.   

    Server.Execute("checkLogin.aspx);这个方法也太烂了.你直接搞一个验证用户的函数,然后调用那个函数就OK了.跳转到哪个页面随便了,回首页也一样.