asp.Net中怎么把用户注册信息写入数据库,登录时判断用户名密码是否正确,提供用户修改密码功能

如题所述

你提问题不该这样, 你应该自己去研究,遇到那个环节障碍再来问

不过我手头正好有个现成的东西 可以发出来给你看看

假设使用ACCESS数据库, 在网站根目录下有个叫UUU.accdb的数据库文件 , 下面是注册用的页面

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="注册.aspx.cs" Inherits="注册" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style type="text/css">
.style1
{
width: 100%;
}
.style2
{
width: 180px;
}
.style3
{
width: 180px;
height: 68px;
}
.style4
{
height: 68px;
}
.style5
{
color: #FF3300;
}
.style6
{
color: #000000;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>

<table class="style1">
<tr>
<td class="style3">
</td>
<td class="style4">
</td>
</tr>
<tr>
<td class="style2">
</td>
<td>
会员账号:<asp:TextBox ID="huiyuanzhanghao" runat="server" AutoPostBack="True"
ontextchanged="TextBox1_TextChanged" Width="278px"></asp:TextBox>
<span class="style5">*<br />
<br />
登录密码:<asp:TextBox ID="denglumima" runat="server" TextMode="Password"
Width="278px"></asp:TextBox>
*<br />
<br />
</span>推荐<span class="style6">会员:</span><span class="style5"><asp:TextBox
ID="tuijianhuiyuan" runat="server" AutoPostBack="True"
ontextchanged="tuijianhuiyuan_TextChanged" Width="278px"></asp:TextBox>
<br />
<br />
分组<span class="style6">编号:审核通过后由系统分配</span><br />
<br />
段位<span class="style6">:</span> 初始段位为0<br />
<br />
身份证姓名<span class="style6">:</span><asp:TextBox ID="shenfenzhengxingming"
runat="server" Width="278px"></asp:TextBox>
*<br />
<br />
身份证<span class="style6">号码:</span><asp:TextBox ID="shenfenzhenghaoma"
runat="server" Width="278px"></asp:TextBox>
*<br />
<br />
移动<span class="style6">电话:</span><asp:TextBox ID="yidongdianhua" runat="server"
Width="278px"></asp:TextBox>
*<br />
<br />
收货<span class="style6">地址:</span><asp:TextBox ID="shouhuodizhi" runat="server"
Width="278px"></asp:TextBox>
*<br />
<br />
邮政编码<span class="style6">:</span><asp:TextBox ID="youzhengbianma"
runat="server" Width="278px"></asp:TextBox>
<br />
<br />
QQ编码<span class="style6">:</span><asp:TextBox ID="qqhaoma" runat="server"
Width="278px"></asp:TextBox>
<br />
<br />
开户<span class="style6">银行:</span><asp:TextBox ID="kaihuyinhang" runat="server"
Width="278px"></asp:TextBox>
*<br />
<br />
银行<span class="style6">卡号:</span><asp:TextBox ID="yinhangkahao" runat="server"
Width="278px"></asp:TextBox>
*<br />
<br />
开户<span class="style6">姓名:</span><asp:TextBox ID="kaihuxingming" runat="server"
Width="278px"></asp:TextBox>
*<br />
<br />
会员职级<span class="style6">:加盟商</span><br />
<br />

<asp:LinkButton ID="LinkButton1" runat="server" onclick="LinkButton1_Click">确认注册</asp:LinkButton>
<br />
</span>
</td>
</tr>
</table>

</div>
</form>
</body>
</html>

下面是后面的代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.OleDb;
using System.Security.Cryptography;
public partial class 注册 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
if (huiyuanzhanghao.Text.Equals(""))
{
//Response.Write("<script>alert('')</script>");
return;
}
string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath("~/uuu.accdb") + ";Jet OLEDB:Database Password=;";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
string sqlstr = "SELECT * FROM [user] where 会员账号='"+huiyuanzhanghao .Text +"'";
OleDbCommand mycmd = new OleDbCommand(sqlstr, conn);

OleDbDataReader dr = mycmd.ExecuteReader();
if (dr.Read())
{
Response.Write("<script>alert('用户名已存在')</script>");
huiyuanzhanghao.Focus();
return;
}
conn.Close();
mycmd.Dispose();
dr.Dispose();

}
protected void tuijianhuiyuan_TextChanged(object sender, EventArgs e)
{
if (huiyuanzhanghao.Text.Equals(""))
{
//Response.Write("<script>alert('')</script>");
return;
}
string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath("~/uuu.accdb") + ";Jet OLEDB:Database Password=;";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
string sqlstr = "SELECT * FROM [user] where 会员账号='" + tuijianhuiyuan.Text + "'";
OleDbCommand mycmd = new OleDbCommand(sqlstr, conn);

OleDbDataReader dr = mycmd.ExecuteReader();
if (!dr.Read())
{
Response.Write("<script>alert('用户名不存在')</script>");
tuijianhuiyuan.Focus();
return;
}
conn.Close();
mycmd.Dispose();
dr.Dispose();
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
if (huiyuanzhanghao.Text.Equals("") | denglumima.Text.Equals("") | shenfenzhenghaoma.Text.Equals("") | shenfenzhengxingming.Text.Equals("")
| yidongdianhua.Text.Equals("") | shouhuodizhi.Text.Equals("") | kaihuyinhang.Text.Equals("") | kaihuxingming.Text.Equals("")
| yinhangkahao.Text.Equals(""))
{
Response.Write("<script>alert('所有带*不可为空')</script>");
return;
}
string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath("~/uuu.accdb") + ";Jet OLEDB:Database Password=;";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
string sqlstr = "insert into [user] (会员账号,密码) values ('"+huiyuanzhanghao .Text +"','"+GetMD5 (denglumima .Text )+"')";
OleDbCommand mycmd = new OleDbCommand(sqlstr, conn);

mycmd.ExecuteNonQuery();
//string sqlstr = "insert into [用户信息] (会员账号,推荐会员,段位,身份证姓名,身份证号码,) values ('" + huiyuanzhanghao.Text + "','" + GetMD5(denglumima.Text) + "')";
//OleDbCommand mycmd = new OleDbCommand(sqlstr, conn);

}
public string GetMD5(string strPwd)
{
string pwd = "";
//实例化一个md5对象
MD5 md5 = MD5.Create();
// 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择
byte[] s = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(strPwd));
//翻转生成的MD5码
s.Reverse();
//通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
//只取MD5码的一部分,这样恶意访问者无法知道取的是哪几位
for (int i = 3; i < s.Length - 1; i++)
{
//将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符
//进一步对生成的MD5码做一些改造
pwd = pwd + (s[i] < 198 ? s[i] + 28 : s[i]).ToString("X");
}
return pwd;
}
}

上面就是注册的整个过程, 你看明白了 登录你可以自己写出来, 如果看不明白,那就别往下做了,回去学基础知识。

这个注册的过程密码使用了MID5加密, 可以保证密码不会由于数据库外泄而泄密追问

谢谢,已解决😊

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-05-25
李连杰
相似回答