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="width: 182px">
    <tr>
        <td style="width: 276px">
            <span style="font-size: 10pt">密码强度:</span></td>
        <td id="r" style="width: 100px">
            <asp:Label ID="labEbb" runat="server" Text="弱" Width="18px" Font-Size="12px"></asp:Label></td>
        <td style="width: 92px">
            <asp:Label ID="labStrong" runat="server" Text="强" Width="18px" Font-Size="12px"></asp:Label></td>
        <td style="width: 106px">
            </td>
    </tr>
</table>

判断是否注册:
前台代码:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <table border="0" cellpadding="0" cellspacing="0" style="width: 477px; height: 48px;">
            <tr>
                <td style="width: 88px; height: 24px; text-align: right">
                    <span style="font-size: 10pt">会 员 名: </span>
                </td>
                <td style="height: 24px; text-align: left; width: 509px;" 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 = "";
            }
        }
    }

转载于:https://www.cnblogs.com/zt102545/p/3321231.html

ASP.NET会员注册登录模块(MD5加密,Parameters防止SQL注入,判断是否注册)相关推荐

  1. 【Java闭关修炼】SpringBoot项目-贪吃蛇对战小游戏-配置Mysql与注册登录模块2

    [Java闭关修炼]SpringBoot项目-贪吃蛇对战小游戏-配置Mysql与注册登录模块2 传统的登录验证模式 JWT登录验证方式 下载安装依赖 创建JWTUTIL JwtAuthenticati ...

  2. 注册登录模块设计浅谈

    http://page.renren.com/601380231/note/863828122 注册&登录是一个网站的门户,它的设计姿态就是对待客人的态度.虽然用户可能每次都只花极少的时间在注 ...

  3. qt实现程序密钥注册功能,MD5加密+AES加密,并实现一台电脑系统一个密钥

    qt实现了一个给自己软件加密的功能. 原理是: 需要被注册的软件第一次运行的时候,在系统的注册表里面注册一个键值,如下: 这个值作为生成密钥的用户识别号,然后生成密钥文件key.db,把这个key.d ...

  4. 微信小程序登录密码MD5加密

    在小程序中,页面的脚本逻辑是在JsCore中运行,JsCore是一个没有窗口对象的环境,所以不能在脚本中使用window,也无法在脚本中操作组件.zepto/jquery 也无法使用,因为zepto/ ...

  5. SQL Server安全-加密术和SQL注入攻击

    SQL Server上的加密术 SQL Server上内置了加密术用来保护各种类型的敏感数据.在很多时候,这个加密术对于你来说是完全透明的:当数据被存储时候被加密,它们被使用的时候就会自动加密.在其他 ...

  6. asp实现注册登录界面_python app (kivy)-与小型数据库连接,实现注册登录操作

    资料参考:Kivy Tutorial 效果: 环境:pycharm中的web2py 文件: – main.py (Run this script) – database.py – my.kv – us ...

  7. android注册文件打开,Android项目实战系列—基于博学谷(三)注册与登录模块

    由于这个模块内容较多,篇幅较长,请耐心阅读. 注册与登录模块分为三个部分 [x] [欢迎界面]() [x] [注册界面]() [x] [登录界面]() 一.欢迎界面 1.创建工程,命名为BoXueGu ...

  8. python凯撒密码加密写入文件_Python用户名密码登录系统(MD5加密并存入文件,三次输入错误将被锁定)及对字符串进行凯撒密码加解密操作...

    #-*- coding: gb2312 -*-#用户名密码登录系统(MD5加密并存入文件)及对字符串进行凯撒密码加解密操作#作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/k ...

  9. ASP.Net中MD5加密-16位32位

    public string md5(string str,int code) { if(code==16) //16位MD5加密(取32位加密的9~25字符) { return System.Web. ...

最新文章

  1. 织梦内容管理系统修改
  2. 是时候装逼了,试试 IDEA 解决 Maven 依赖冲突的高能神器!
  3. 国内卫星通信技术发展及应用概述
  4. 响应接收窗口大小( ra-ResponseWindowSize)
  5. pygame中Rect(left, top, width, height)的参数详解
  6. estemplate 导入MySQL_[数据库]es~通过ElasticsearchTemplate进行聚合操作
  7. 定义[nextTick、事件循环]
  8. 学习笔记(36):Python网络编程并发编程-IO模型介绍
  9. [NOIP2008 提高组] 笨小猴-map容器用来标记
  10. BZOJ 1087 [SCOI2005]互不侵犯King ——状压DP
  11. SpringBoot 配置文件(yml)
  12. 杂项:Java un
  13. Android开发笔记(六十四)网页加载与JS调用
  14. 今年暑假不ac (c语言版)
  15. linux mysql skip_skip-grant-tables 修改linux的mysql忘记root密码
  16. TCP3次握手为啥挥手却要4次,这下解释明白了
  17. 批量识别条形码和二维码
  18. echart实现custom自定义色块功能
  19. 扫地机器人划伤地板_使用扫地机器人地板会被破坏吗
  20. python 请假审批系统_基于工作流的请假审批系统设计与实现

热门文章

  1. java taken_java-是否有正确的方法在slf4j中传递参数?
  2. android生成aar无效,android studio生成aar包并在其他工程引用aar包的方法
  3. java ui自动化测试脚本,如何用Airtest编写UI自动化脚本(示例代码)
  4. 8086条件转移指令JE,JZ
  5. linux ll 文件大小单位_该如何改善 Linux 系统性能?
  6. 160 - 50 DueList.5
  7. 【视觉项目】【day3】8.22号实验记录(利用canny检测之后的来进行模板匹配)
  8. treeset java_Java TreeSet pollLast()方法与示例
  9. 获得jmp esp地址
  10. python 导入自己写的类_python中自己的类不能被导入