因为没有用过Form认证
所以想用Sessin来做认证
但有个问题就是Session每个页面都要写
if(Session["id"]==null)
{
 ...
}
当判断为空时转向login.aspx页面如何不用写这个网页也有这个功能
听说用什么继承网页什么的谢谢

解决方案 »

  1.   

    写个 basePage 继承System.Web.UI.Page 
    把每个页的共同操作都搁里头
    然后 其他页继承 basePage
      

  2.   

    建立一个基类页面 Base_Page.aspx把公共属性,方法写到这个基类基类页面的cs中其他页面继承此基类页面比如:
    index .aspx的cs代码变为:public class index : Base_Page //不是这个了  System.Web.UI.Page
    {
      

  3.   


    namespace CountryPark.WEB.ParkManage
    {
    using System;
    using System.Web;
    using System.Web.UI; /// <summary>
    /// ParentPage 的摘要说明。
    /// </summary>
    public class BasePage : System.Web.UI.Page
    {
    public BasePage()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    }
    protected override void OnInit(EventArgs e)
    {
    if (Session["CurrentUser"] == null)
    {
    HttpContext.Current.Response.Write("<script language=javascript>top.location.href='index.aspx';</script>");
    HttpContext.Current.Response.End();
    return;
    }

    base.OnInit (e);
    }

    }
    }以后的每个页面
    public class EditParter : BasePage
      

  4.   

    没有加Form验证的话意味着你的所有页面都向客户开放,Session验证是在用户访问的时候Page_Load时验证合法性,如果不合法则中断访问,楼主不想用Form又想省事,可行的办法就是把页面都做成用户控件也就是.ascx,然后把控件都嵌入到一个主面里面去,这样只要主面的Page_Load里验证一下Session就行了
      

  5.   

    问:hertcloud(·£DOTNET@C/C++£·) 
    protected override void OnInit(EventArgs e)
    {
    if (Session["CurrentUser"] == null)
    {
    HttpContext.Current.Response.Write("<script language=javascript>top.location.href='index.aspx';</script>");
    HttpContext.Current.Response.End();
    return;
    }

    base.OnInit (e);
    }
    这段是什么意思
    谢谢
      

  6.   

    public class BasePage: System.Web.UI.Page
    {
       public BasePage()
       {}
       public void PageBegin()
       {
         if(Session["ID"]==null) 
         {
         }
       }   protected override void OnLoad(EventArgs e)
      { PageBegin();
    base.OnLoad (e);
      }
    }
    public class WebForm1 : BasePage  //不是System.Web.UI.Page
      

  7.   


    if(Session["ID"] == null)
    {
    Response.Write("<script>window.alert('登陆过期,请重新登陆!');location.replace('Login.aspx');</script>");
    Response.End(); 
    }
      

  8.   

    回复:rym1020
    我本来想把他写在我的base.CS里面
    但在那里用不了Session
      

  9.   

    你至少应该添加这两个引用啊!
    using System.Web;
    using System.Web.SessionState;