asp.net:Session和Application在线用户应用

分类: asp.net   出处:iocblog整理  更新时间:2009-08-13   添加到收藏  


  global.asxa
  
  using system;
  using system.collections;
  using system.componentmodel;
  using system.web;
  using system.web.sessionstate;
  
  namespace elcare
  {
   /// <summary>
   /// global
   /// </summary>
   public class global : system.web.httpapplication
   {
   /// <summary>
  
   /// </summary>
  
   private system.componentmodel.icontainer components = null;
  
   public global()
   {
    initializecomponent();
   }
  
   protected void application_start(object sender, eventargs e)
   {
    application["ol_usercount"]=0;
   }
  
   protected void session_start(object sender, eventargs e)
   {
    application.lock();
    application["ol_usercount"]=(int)application["ol_usercount"]+1;//在线用户
    application.add(session.sessionid.tostring(),1);
    application.unlock();
   }
  
   protected void application_beginrequest(object sender, eventargs e)
   {
  
   }
  
   protected void application_endrequest(object sender, eventargs e)
   {
  
   }
  
   protected void application_authenticaterequest(object sender, eventargs e)
   {
  
   }
  
   protected void application_error(object sender, eventargs e)
   {
  
   }
  
   protected void session_end(object sender, eventargs e)
   {
    application.lock();
    application.remove(session.sessionid.tostring());
    application["ol_usercount"]=(int)application["ol_usercount"]-1;
    application.unlock();
   }
  
   protected void application_end(object sender, eventargs e)
   {
  
   }
  
   #region  /// <summary>
   /// </summary>
   private void initializecomponent()
   {
    this.components = new system.componentmodel.container();
   }
   #endregion
   }
  }
  
  登陆验证
   public void idpassinsql()
   {
    string strconn=(string) ((namevaluecollection) context.getconfig("system.web/database"))["strconn"];
    using (sqlconnection conn = new sqlconnection(strconn))
    {
    sqlcommand cmd = new sqlcommand("sp_idpwd",conn);
    cmd.commandtype=commandtype.storedprocedure;
    cmd.parameters.add("@id",sqldbtype.varchar,20);
    cmd.parameters.add("@pwd",sqldbtype.varchar,20);
    cmd.parameters["@id"].value=txtname.text;
    cmd.parameters["@pwd"].value=txtpwd.text;
    conn.open();
  
    using (sqldatareader dr = cmd.executereader())
    {
     if(dr.read())
     {[来源 www.iocblog.net]
     bool notol=true;
     for(int i=0;i<application.count;i++)
     {
      if(application[application.getkey(i).tostring()].tostring()==dr["userid"].tostring())
      notol=false;
     }
     if(notol)
     {
      session["username"]=dr["username"].tostring(); //session["username"] 用户名字
      session["userid"]=dr["userid"].tostring(); //session["userid"] 用户id
      application[session.sessionid.tostring()]=dr["userid"].tostring();//给session_start生成的application付用户id
      response.redirect("./main/main.aspx");
     }
     else
      message.text="该用户已登陆";
     }
     else
     {
     message.text="密码错误";
     }
    }
    }
   }
  
  注销退出
   private void btnquit_click(object sender, system.eventargs e)
   {
    session.abandon();//该语句将调用global的session_end事件
    response.write("<script language=javascript>parent.location='../default.aspx'</script>");//
   }[来源 www.iocblog.net]



文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。