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

发布时间:2020-11-23编辑:脚本学堂
本文分享一例asp.net代码,实现一个会员注册登录模块,包括md5加密、防止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="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 = "";
} }
}