您的位置:首页 > 移动开发

ASP.Net Session和Application在线用户应用

2006-12-07 11:33 507 查看
ASP.Net Session和Application在线用户应用

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);//这里用SessionID作为Application名
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
}
}

登陆验证 aspx
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>");//
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: