login.aspx.cs

来自「聊天客户端服务程序」· CS 代码 · 共 131 行

CS
131
字号
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

namespace MyChat
{
	/// <summary>
	/// Login 的摘要说明。
	/// </summary>
	public class Login : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.TextBox txtNickName;
		protected System.Web.UI.WebControls.TextBox txtPassword;
		protected System.Web.UI.WebControls.RequiredFieldValidator rfvPassword;
		protected System.Web.UI.WebControls.TextBox txtValidateCode;
		protected System.Web.UI.WebControls.RequiredFieldValidator rfvNickName;
		protected System.Web.UI.WebControls.RequiredFieldValidator rfvValidateCode;
		protected System.Web.UI.WebControls.CustomValidator cvValidateCode;
		protected System.Web.UI.WebControls.Label lblError;
		protected System.Web.UI.WebControls.Button btnLogin;
	
		private void Page_Load(object sender, System.EventArgs e)
		{
			// 在此处放置用户代码以初始化页面
		}

		#region Web 窗体设计器生成的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
			this.cvValidateCode.ServerValidate += new System.Web.UI.WebControls.ServerValidateEventHandler(this.cvValidateCode_ServerValidate);
			this.btnLogin.Click += new System.EventHandler(this.btnLogin_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion

		private void btnRegister_Click(object sender, System.EventArgs e)
		{

		}

		private void btnLogin_Click(object sender, System.EventArgs e)
		{
			if (this.IsValid)
			{
				SqlConnection cn=DBOperate.GetConnection();
				SqlCommand cmd=new SqlCommand("Select * from UserInfo Where NickName=@NickName and Password=@Password",cn);
				cmd.Parameters.Add("@NickName",txtNickName.Text);
				cmd.Parameters.Add("@Password",txtPassword.Text);
				cn.Open();
				SqlDataReader dr=cmd.ExecuteReader();
				if (dr.Read())
				{
					UserInfo ui=new UserInfo();
					ui.NickName=dr["NickName"].ToString();
					ui.Sex=(bool)dr["Sex"];
					ui.FaceID=dr["FaceID"].ToString();
					ui.Birthday=(DateTime)dr["Birthday"];
					ui.Password=dr["Password"].ToString();
					ui.LastLoginIP=Request.UserHostAddress;
					ui.LastLoginTime=DateTime.Now;
					UpdateUserInfo(ui);
					Session["User"]=ui;
					lock (App.Users)
					{
						foreach (UserInfo user in App.Users)
						{
							if (user.NickName==ui.NickName) App.Users.Remove(user);
							break;
						}
						App.Users.Add(ui);
					}
					cn.Close();
					Response.Redirect("Main.aspx");
				}
				else
				{
					lblError.Visible=true;
				}
			}
		}

		private void UpdateUserInfo(UserInfo ui)
		{
			SqlConnection cn=DBOperate.GetConnection();
			SqlCommand cmd=new SqlCommand("Update UserInfo set LastLoginIP=@LastLoginIP,LastLoginTime=@LastLoginTime Where NickName=@NickName",cn);
			cmd.Parameters.Add("@LastLoginIP",ui.LastLoginIP);
			cmd.Parameters.Add("@LastLoginTime",ui.LastLoginTime);
			cmd.Parameters.Add("@NickName",ui.NickName);
			cn.Open();
			cmd.ExecuteNonQuery();
			cn.Close();
		}

		private void cvValidateCode_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args)
		{
			if (Session["CheckCode"]==null)
			{
				cvValidateCode.ErrorMessage="验证码已过期,请重新填写";
			}
			else if (Session["CheckCode"].ToString().ToLower()!=txtValidateCode.Text.ToLower()) 
			{
				cvValidateCode.ErrorMessage="验证码填写错误";
				args.IsValid=false;
			}
		}

	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?