zoukankan      html  css  js  c++  java
  • ASP.NET会员注册登录模块(MD5加密,Parameters防止SQL注入,判断是否注册)

    MD5加密,Parameters防止SQL注入:
    protected void btnLog_Click(object sender, EventArgs e)
        {
            //获取验证码
            string code = txtCode.Text;
            //判断用户输入的验证码是否正确
            if (Request.Cookies["CheckCode"].Value == code)
            {
                //创建数据库连接
                SqlConnection con = new SqlConnection("server=.;database=db_Register;uid=sa;pwd=102545;");
                //打开数据库连接
                con.Open();
                //使用MD5加密将用户输入的密码加密
                string pass = FormsAuthentication.HashPasswordForStoringInConfigFile(txtUserpass.Text, "MD5");
                //创建SQL语句,该语句用来查询用户输入的用户名和密码是否正确
                string sqlSel = "select count(*) from tb_userInfo where userName=@name and userPass=@pass";
                //创建SqlCommand对象
                SqlCommand com = new SqlCommand(sqlSel, con);
                //使用Parameters的add方法添加参数类型,防止SQL注入,Parameters属性传参的方法将非法字符过滤掉.
                com.Parameters.Add(new SqlParameter("name"SqlDbType.VarChar, 20));
                //设置Parameters的参数值
                com.Parameters["name"].Value = txtUserName.Text;
                com.Parameters.Add(new SqlParameter("pass"SqlDbType.VarChar, 50));
                com.Parameters["pass"].Value = pass;
                //判断ExecuteScalar方法返回的参数是否大于0大于表示登录成功并给出提示
                if (Convert.ToInt32(com.ExecuteScalar()) > 0)
                {
                    RegisterStartupScript("""<script>alert('登录成功!')</script>");
                    //清空文本框
                    txtCode.Text = txtUserName.Text = "";
                }
                else
                {
                    RegisterStartupScript("""<script>alert('用户名或密码错误!')</script>");
                }
            }
            else
            {
                RegisterStartupScript("""<script>alert('验证码输入错误!')</script>");
            }
     
     
        }
     
    设置密码强度:
    function passHint()
        {
            var txt=document.getElementById('txtPass').value;
            if(txt.length<6)
            {
                document.all("tab").rows[0].cells[1].bgColor="red";
                document.all("tab").rows[0].cells[2].bgColor="";
            }else
            {
            document.all("tab").rows[0].cells[2].bgColor="red";
                    document.all("tab").rows[0].cells[1].bgColor="";
            }
            
        }

    <table id="tab" border="0" cellpadding="0" cellspacing="0" style="width182px">
        <tr>
            <td style="width276px">
                <span style="font-size10pt">密码强度:</span></td>
            <td id="r" style="width100px">
                <asp:Label ID="labEbb" runat="server" Text="弱" Width="18px" Font-Size="12px"></asp:Label></td>
            <td style="width92px">
                <asp:Label ID="labStrong" runat="server" Text="强" Width="18px" Font-Size="12px"></asp:Label></td>
            <td style="width106px">
                </td>
        </tr>
    </table>
     
     
    判断是否注册:
    前台代码:
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <table border="0" cellpadding="0" cellspacing="0" style="width477pxheight48px;">
                <tr>
                    <td style="width88pxheight24pxtext-alignright">
                        <span style="font-size10pt">会 员 名: </span>
                    </td>
                    <td style="height24pxtext-alignleftwidth509px;" colspan="2">
                        <asp:TextBox onFocus="tName();" ID="txtName" runat="server" Width="89px" AutoPostBack="True"
                            OnTextChanged="txtName_TextChanged"></asp:TextBox><span style="color#ff0000">*</span><asp:RequiredFieldValidator
                                ID="rfvName" runat="server" ErrorMessage="用户名不能为空" Width="1px"
                                ControlToValidate="txtName">*</asp:RequiredFieldValidator>
                        <asp:Label ID="labUser" runat="server" Text="只能输入数字、字母、下划线" Width="159px" Font-Size="12px"></asp:Label>
                        <asp:Label ID="labIsName" runat="server" Font-Size="12px"></asp:Label></td>
                </tr>
            </table>
        </ContentTemplate>
    </asp:UpdatePanel>
    后台代码:
        protected bool isName()
        {
            //创建一个布尔型变量并初始化为false;
            bool blIsName = false;
            //创建SQL语句,该语句用来判断用户名是否存在
            string sqlSel = "select count(*) from tb_userInfo where userName='" + txtName.Text + "' ";
            //创建数据库连接
            SqlConnection con = new SqlConnection("server=.;database=db_Register;uid=sa;pwd=102545;");
            //打开数据库连接
            con.Open();
            //创建SqlCommand对象
            SqlCommand com = new SqlCommand(sqlSel, con);
            //判断ExecuteScalar方法返回的参数是否大于0,大于表示用户名已存在
            if (Convert.ToInt32(com.ExecuteScalar()) > 0)
            {
                blIsName = true;
            }
            else
            {                      
                blIsName = false;
            }
            //返回布尔值变量
            return blIsName;
     
        }
     
        protected bool isNameFormar()
        {
            //创建一个布尔型变量并初始化为false;
            bool blNameFormar = false;
            //设置正则表达式
            Regex re = new Regex("^\w+$");
            //使用Regex对象中的IsMatch方法判断用户名是否满足正则表达式
            if (re.IsMatch(txtName.Text))
            {
                //设置布尔变量为true
                blNameFormar = true;
                //设置label控件的颜色
                labUser.ForeColor = System.Drawing.Color.Black;
            }
            else
            {
                labUser.ForeColor = System.Drawing.Color.Red;
                blNameFormar = false;
            }
            //返回布尔型变量
            return blNameFormar;
        }
     
        protected void txtName_TextChanged(object sender, EventArgs e)
        {
            //判断用户名是否为空
            if (txtName.Text == "")
            {
                //使用Label控件给出提示
                labIsName.Text = "用户名不能为空";
                //设置Label控件的颜色
                labIsName.ForeColor = System.Drawing.Color.Red;
            }
            else
            {
                //调用自定义isNameFormar方法判断用户名是否满足格式要求
                if (isNameFormar())
                {
                    //调用isName自定义方法判断用户名是否已注册
                    if (isName())
                    {
                        labIsName.Text = "用户名已存在!";
                        labIsName.ForeColor = System.Drawing.Color.Red;
                    }
                    else
                    {
                        labIsName.Text = "可以注册!";
                        labIsName.ForeColor = System.Drawing.Color.Blue;
                    }
                }
                else
                {
                    labIsName.Text = "";
                }
            }
     
        }
     
  • 相关阅读:
    优化SQL查询:如何写出高性能SQL语句
    动态库与静态库
    多线程程序中fork导致的一些问题
    合理的使用size_t可以提高程序的可移植性和代码的可读性,让你的程序更高效。
    linux下C++ STL hash_map的使用以及使用char *型变量作为Key值的一大“坑”
    阅读腾讯编程规范的笔记
    2、vector的实现
    linux下C++对线程的封装
    1、空间配置器
    SQL Server三种表连接原理
  • 原文地址:https://www.cnblogs.com/zt102545/p/3321231.html
Copyright © 2011-2022 走看看