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;u);

//打开数据库连接

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 cellpadding="0" cellspacing="0" >

<tr>

<td >

<span >密码强度:</span></td>

<td >

<asp:Label runat="server" Text="弱" Width="18px" Font-Size="12px"></asp:Label></td>

<td >

<asp:Label runat="server" Text="强" Width="18px" Font-Size="12px"></asp:Label></td>

<td >

</td>

</tr>

</table>

判断是否注册:

前台代码:

<asp:UpdatePanel runat="server">

<ContentTemplate>

<table cellpadding="0" cellspacing="0" >

<tr>

<td >

<span >会 员 名: </span>

</td>

<td colspan="2">

<asp:TextBox onFocus="tName();" runat="server" Width="89px" AutoPostBack="True"

OnTextChanged="txtName_TextChanged"></asp:TextBox><span >*</span><asp:RequiredFieldValidator

runat="server" ErrorMessage="用户名不能为空" Width="1px"

ControlToValidate="txtName">*</asp:RequiredFieldValidator>

<asp:Label runat="server" Text="只能输入数字、字母、下划线" Width="159px" Font-Size="12px"></asp:Label>

<asp:Label 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;u);

//打开数据库连接

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 = "";

}

}

}