asp.net 实现用户登录和注册——基于webform模式

    最近在写asp课程设计,网站登录注册的功能怎么能少,捣鼓了两天终于弄出点东西来了。

    环境:Windows10 + VS2015 + 自带LocalDB

    看一下效果:

    1、注册页面:

asp.net 实现用户登录和注册——基于webform模式_第1张图片

如果用户重名:

asp.net 实现用户登录和注册——基于webform模式_第2张图片

 

2、登录页:

 

3、注册或者登录好了会跳到Home页面并且显示当前的用户

 

下面看看关键代码:

①注册前台页面Register.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Register.aspx.cs" Inherits="Album.OnlineAlbum.Register" %>






    注册
    


    

欢迎注册OA

每一天,记录美。








同意                                                     

 

  注册后台页面Register.aspx.cs:

 

using System;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;

namespace Album.OnlineAlbum
{
    public partial class Register : System.Web.UI.Page
    {
        private bool UserNameIselgal = false;
        private bool PsdIselgal = false;
        private bool CanRegister = false;

        protected void Page_Load(object sender, EventArgs e)
        {
            
        }


        protected void linkToLogin_Click(object sender, EventArgs e)
        {
            Response.Redirect("Login.aspx");
        }

        protected void btnRegister_Click(object sender, EventArgs e)
        {
            Session["User"] = rUserNameText.Text;
            Session["Psd"] = rPsdText.Text;

            string connStr = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True";
            SqlConnection conn = new SqlConnection(connStr);

          
            try
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand("select count(*) from UserTable where UId=@UId", conn);
                cmd.Parameters.Add("@UId", SqlDbType.Char);
                cmd.Parameters[0].Value = Session["User"];
                int count = (int)cmd.ExecuteScalar();

                if (count > 0)
                {

                    Response.Write("");
                }
                else
                {
                   
                    CanRegister = true;
                }
            }
            catch
            {
                Response.Write("检测重名异常");
            }

            finally
            {
                conn.Close();
            }

            if (CanRegister)
            {
                try
                {
                    conn.Open();
                    string strIns = "insert into  UserTable(UId, Psd) values(@UId, @Psd)";
                    SqlCommand cmd = new SqlCommand(strIns, conn);
                    cmd.Parameters.Add("@UId", SqlDbType.NChar);
                    cmd.Parameters.Add("@Psd", SqlDbType.NChar);

                    cmd.Parameters["@UId"].Value = Session["User"];
                    cmd.Parameters["@Psd"].Value = Session["Psd"];

                    cmd.ExecuteNonQuery();
                }
                catch
                {
                    Response.Write("注册异常");
                }
                finally
                {
                    conn.Close();

                }
            }
            CanRegister = CanRegister && UserNameIselgal && PsdIselgal;
            if (CanRegister)
            {
                Session["CurrentUser"] = rUserNameText.Text;
                Response.Redirect("Home.aspx");
            }
          
        }

        protected void CustomValidator1_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args)
        {
            if (rUserNameText.Text.Equals("用户名"))
            {
                CustomValidator1.ErrorMessage = "*用户名为空";
                args.IsValid = false;
            } else if (System.Text.RegularExpressions.Regex.IsMatch(rUserNameText.Text, "^[0-9a-zA-Z]+$") &&
                    rUserNameText.Text.Length > 5 && rUserNameText.Text.Length < 11)
                    {
                    args.IsValid = true;
                    UserNameIselgal = true;
                    }
                 else
                {
                CustomValidator1.ErrorMessage = "*用户名由6~10位数字和字母构成";
                args.IsValid = false;
                 }

          
        }

        protected void CustomValidator2_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args)
        {
            if (rPsdText.Text.Equals("密码"))
            {
                CustomValidator2.ErrorMessage = "*密码为空";
                args.IsValid = false;
            }

            else if (System.Text.RegularExpressions.Regex.IsMatch(rPsdText.Text, "^[0-9a-zA-Z]+$") &&
              rPsdText.Text.Length > 4)
           {
                args.IsValid = true;
            }
            else
            {
                CustomValidator2.ErrorMessage = "*密码由全数字和字母构成且不少于5位";
                args.IsValid = false;
            }
        }

        protected void CustomValidator3_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args)
        {
            if (rrPsdText.Text.Equals("") ||rrPsdText.Text.Equals("确认密码"))
            {
                args.IsValid = false;
                CustomValidator3.ErrorMessage = "*确认密码为空";
            }
            else if (!rrPsdText.Text.Equals(rPsdText.Text))
            {
                args.IsValid = false;
                CustomValidator3.ErrorMessage = "*两次密码不一致";
            }
            else
            {
                PsdIselgal = true;
                args.IsValid = true;
            }
        }
    }
}

    ②登录前台页面Login.aspx:

    

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="Album.OnlineAlbum.Login" %>






    登陆
     


    
用户名:
密码:
没有账号?注册

    登录后台页面Login.aspx.cs:

    

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Album.OnlineAlbum
{
    public partial class Login : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
           
        }

       

        protected void LinkButton1_Click(object sender, EventArgs e)
        {
            Response.Redirect("Register.aspx");
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            string connStr = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True";
            SqlConnection conn = new SqlConnection(connStr);

            try
            {


                conn.Open();
                SqlCommand cmd = new SqlCommand("select count(*) from UserTable where UId=@UId and Psd=@Psd", conn);
                cmd.Parameters.Add("@UId", SqlDbType.Char);
                cmd.Parameters.Add("@Psd", SqlDbType.Char);
                cmd.Parameters[0].Value = TextBox1.Text;
                cmd.Parameters[1].Value = TextBox2.Text;
                int count = (int)cmd.ExecuteScalar();
                if (count == 1)
                {

                    Session["CurrentUser"] = TextBox1.Text;
                    Response.Redirect("./Home.aspx");


                }
                else
                {
                    Response.Write("");
                }
            }
            catch
            {
                Response.Write("");
            }

            finally
            {
                conn.Close();
            }

        }
    }
}

    ③Home.aspx:

    

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Home.aspx.cs" Inherits="Album.OnlineAlbum.Home" %>






    Online Ablum
    


   
    

        
注册  登录

    home.aspx.cs:

    

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Album.OnlineAlbum
{
    public partial class Home : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["CurrentUser"] != null)
                btnToReg.Text = Session["CurrentUser"].ToString();
        }

        protected void Unnamed1_Click(object sender, EventArgs e)
        {
            Response.Redirect("Login.aspx");
        }

        protected void Unnamed2_Click(object sender, EventArgs e)
        {
            Response.Redirect("Register.aspx");
        }
    }
}    

   Web.config:





  

    


    
  
  
    
    
    
      
    
  
  
    
      
      
    
  
  
    
    
      
      
    
  

 

附上项目代码,需要积分下载。

 ps:这是我一个在线相册系统的一部分,完整项目源码见github,可以不用积分下载,不过你得理清我写的东西。

你可能感兴趣的:(asp)