请教高人如何实现?
 
我设置了<sessionState mode="InProc" cookieless="false" timeout="2" />但是不知道如何测试是否运行了,半天没看出效果。Global.asax 文件中的Session_End中无法用 response ,那如何跳转页面?

解决方案 »

  1.   

    写个单独类继承自Page,其他页面继承自该页面
    public class BasePage : System.Web.UI.Page   
      {   
      public BasePage()   
      {   
      }   
      protected override void OnInit(EventArgs O)   
      {   
      if (base.Session["UserId"] == null || base.Session["UserId"].ToString().Equals(""))   
      {   
      Response.Redirect("~/Login.aspx");   
      }   
      }   
      } 
      

  2.   


    比如 菜单有:
    学生管理信息页面
         学生基本信息页面
         学生成绩页面
    这一个类别 只要 学生管理信息页面 集成basePage即可
      

  3.   

    是的 每个默认继承Page,改成你自定义的页面类
      

  4.   

    这样呢。配置文件web.config  
     <authentication mode="Forms">
          <forms name=".ASPXAUTH" defaultUrl="./admin/index.aspx" loginUrl="./admin/login.aspx" timeout="300000" path="/"></forms>
             </authentication>
      

  5.   

    超时如上,你要的注销所有session是什么意思?。  Session.Clear(); 移除所有的key 与value 。如果只对对应的还是自己控制 session["key"]=null;吧。
      

  6.   


    <system.web>
         <compilation debug="true"/>
             <authentication mode="Forms">
                 <forms loginUrl="~/Login.aspx" name="Hotel" defaultUrl="Login.aspx">
                   <credentials passwordFormat="SHA1">
                          <user name="admin"   password="qwer3453t4456ty5476y6876ur678uiu7897iyt"/>
                   </credentials>
         </forms>
     </authentication>
          <authorization>
     <deny users="?"/>
          </authorization>
    </system.web>ps:如果内存不够用session会自动消失的,这时候设置超时时间也没有用。
      

  7.   

    <credentials passwordFormat="SHA1">
                          <user name="admin"   password="qwer3453t4456ty5476y6876ur678uiu7897iyt"/>
                   </credentials>
    这段代码是做什么的?  
      

  8.   

    这个配置 是 超时的时候  跳转到登陆页面  session 没有清空的。 你可以 在 跳转到登陆页面的时候 做个页面来 清空session。用 ajax  让他进入登陆页面 就 清空所有session  这样来处理。
      

  9.   

    我用的forms  为什么 有时候有作用 有时候没作用
      

  10.   

    Session_End
    是在服务端运行的,怎么会主动去更新你客户端的网页?网页打开之后,服务器和客户端之间是断开的,服务器怎么知道要给哪个客户转向?
      

  11.   


    forms  验证采用的是Cookie,不是Session。,使用Session要自己判断
      

  12.   


      protected void DoLoginOut()
            {
                string[] sesseinList = new string[] 
                {
                    "company_accounts","company_id","company_huiyuan","company_login","user_login_time"
                };
                foreach (string item in sesseinList)//清除指定的session
                {
                    Session.Remove(item);
                    //HttpContext.Current.Session.Remove(item);
                }
                Session.Clear();//清除全部session
    FormsAuthentication.SignOut();//使用Forms验证时用这个清除cookies
                Response.Cookies["mpcokieuse"].Expires=DateTime.Now.AddSeconds(-1);//设置过期
                Page.Response.Redirect("Login.aspx");
            }
      

  13.   


      那要如何实现 这种session超时的判断?  
    protected override void OnInit(EventArgs O)   
      {   
      if (base.Session["UserId"] == null || base.Session["UserId"].ToString().Equals(""))   
      {   
      Response.Redirect("~/Login.aspx");   
      }   
      }   
    用这个进行判断吗?
      

  14.   

    用seeion验证你就等投诉吧。 无故下线。这将是你最大的烦脑seeion极易掉失数据
    百度一下from验证。也相当简单,但实用,有效
      

  15.   

    我也在为这个问题头疼,我这么想的,在每个页面onload事件里做session的判断要是null就跳转到登陆页,然后在页面的任何操作前,比如说点击按钮什么的也做了下判断~ 我也是菜鸟一枚,要是说的不对不要见怪~