Session和Application在线用户应用

王朝other·作者佚名  2006-01-09
宽屏版  字体: |||超大  

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())

{

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>");//

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有