使用ASP.NET实现注册登录社交系统,提供代码
时间: 2024-03-02 15:49:34 浏览: 129
首先,我们需要创建一个 ASP.NET Web 应用程序,并在其中添加注册和登录页面。
注册页面代码:
```html
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Register.aspx.cs" Inherits="Register" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Register</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h2>Register</h2>
<hr />
<asp:Label ID="lblError" runat="server" ForeColor="Red" Visible="false"></asp:Label>
<br />
<asp:Label ID="lblUsername" runat="server" Text="Username"></asp:Label>
<br />
<asp:TextBox ID="txtUsername" runat="server"></asp:TextBox>
<br />
<asp:Label ID="lblPassword" runat="server" Text="Password"></asp:Label>
<br />
<asp:TextBox ID="txtPassword" runat="server" TextMode="Password"></asp:TextBox>
<br />
<asp:Label ID="lblConfirmPassword" runat="server" Text="Confirm Password"></asp:Label>
<br />
<asp:TextBox ID="txtConfirmPassword" runat="server" TextMode="Password"></asp:TextBox>
<br />
<asp:Button ID="btnRegister" runat="server" Text="Register" OnClick="btnRegister_Click" />
</div>
</form>
</body>
</html>
```
注册页面的代码主要包括一个表单和一些 ASP.NET 控件,如标签、文本框和按钮。我们需要在代码文件中添加一个按钮点击事件,用于将新用户信息存储在数据库中。
注册页面的代码文件:
```csharp
using System;
using System.Data.SqlClient;
using System.Web.Configuration;
public partial class Register : System.Web.UI.Page
{
protected void btnRegister_Click(object sender, EventArgs e)
{
string connectionString = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection connection = new SqlConnection(connectionString);
string username = txtUsername.Text.Trim();
string password = txtPassword.Text.Trim();
string confirmPassword = txtConfirmPassword.Text.Trim();
if (password != confirmPassword)
{
lblError.Text = "Passwords do not match!";
lblError.Visible = true;
return;
}
string query = "INSERT INTO Users (Username, Password) VALUES (@Username, @Password)";
SqlCommand command = new SqlCommand(query, connection);
command.Parameters.AddWithValue("@Username", username);
command.Parameters.AddWithValue("@Password", password);
try
{
connection.Open();
command.ExecuteNonQuery();
Response.Redirect("Login.aspx");
}
catch (Exception ex)
{
lblError.Text = ex.Message;
lblError.Visible = true;
}
finally
{
connection.Close();
}
}
}
```
在注册页面的代码文件中,我们首先获取了数据库连接字符串,并创建了一个连接对象。然后,我们获取了用户输入的用户名和密码,并检查密码是否与确认密码匹配。如果密码不匹配,我们会显示一个错误消息,并退出按钮点击事件处理程序。否则,我们将新用户信息插入到数据库中,并重定向到登录页面。如果出现任何错误,我们将显示错误消息。
登录页面代码:
```html
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Login</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h2>Login</h2>
<hr />
<asp:Label ID="lblError" runat="server" ForeColor="Red" Visible="false"></asp:Label>
<br />
<asp:Label ID="lblUsername" runat="server" Text="Username"></asp:Label>
<br />
<asp:TextBox ID="txtUsername" runat="server"></asp:TextBox>
<br />
<asp:Label ID="lblPassword" runat="server" Text="Password"></asp:Label>
<br />
<asp:TextBox ID="txtPassword" runat="server" TextMode="Password"></asp:TextBox>
<br />
<asp:Button ID="btnLogin" runat="server" Text="Login" OnClick="btnLogin_Click" />
</div>
</form>
</body>
</html>
```
登录页面的代码与注册页面的代码类似,只是不需要确认密码,并且在按钮点击事件处理程序中需要检查用户名和密码是否匹配。如果匹配,我们将用户信息存储在会话中,并重定向到主页。否则,我们会显示错误消息。
登录页面的代码文件:
```csharp
using System;
using System.Data;
using System.Data.SqlClient;
using System.Web.Configuration;
public partial class Login : System.Web.UI.Page
{
protected void btnLogin_Click(object sender, EventArgs e)
{
string connectionString = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection connection = new SqlConnection(connectionString);
string username = txtUsername.Text.Trim();
string password = txtPassword.Text.Trim();
string query = "SELECT * FROM Users WHERE Username = @Username AND Password = @Password";
SqlCommand command = new SqlCommand(query, connection);
command.Parameters.AddWithValue("@Username", username);
command.Parameters.AddWithValue("@Password", password);
SqlDataAdapter adapter = new SqlDataAdapter(command);
DataTable table = new DataTable();
try
{
connection.Open();
adapter.Fill(table);
}
catch (Exception ex)
{
lblError.Text = ex.Message;
lblError.Visible = true;
return;
}
finally
{
connection.Close();
}
if (table.Rows.Count == 1)
{
Session["Username"] = username;
Response.Redirect("Home.aspx");
}
else
{
lblError.Text = "Invalid username or password!";
lblError.Visible = true;
}
}
}
```
在登录页面的代码文件中,我们首先获取了数据库连接字符串,并创建了一个连接对象。然后,我们获取了用户输入的用户名和密码,并使用 SELECT 语句从数据库中检索匹配的用户信息。如果找到一个匹配的用户,我们将其用户名存储在会话中,并重定向到主页。否则,我们会显示错误消息。
此外,我们还需要创建一个主页,以显示当前用户的信息和其他功能,如编辑个人资料、查找朋友等。主页的代码与注册和登录页面的代码类似,只是需要检查用户是否已经登录,并根据需要显示不同的内容。
阅读全文