使用ASP.NET实现注册登录社交系统,提供代码

时间: 2024-03-02 07:49:34 浏览: 20
首先,我们需要创建一个 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 语句从数据库中检索匹配的用户信息。如果找到一个匹配的用户,我们将其用户名存储在会话中,并重定向到主页。否则,我们会显示错误消息。 此外,我们还需要创建一个主页,以显示当前用户的信息和其他功能,如编辑个人资料、查找朋友等。主页的代码与注册和登录页面的代码类似,只是需要检查用户是否已经登录,并根据需要显示不同的内容。

相关推荐

最新推荐

recommend-type

pre_o_1csdn63m9a1bs0e1rr51niuu33e.a

pre_o_1csdn63m9a1bs0e1rr51niuu33e.a
recommend-type

matlab建立计算力学课程的笔记和文件.zip

matlab建立计算力学课程的笔记和文件.zip
recommend-type

FT-Prog-v3.12.38.643-FTD USB 工作模式设定及eprom读写

FT_Prog_v3.12.38.643--FTD USB 工作模式设定及eprom读写
recommend-type

matlab基于RRT和人工势场法混合算法的路径规划.zip

matlab基于RRT和人工势场法混合算法的路径规划.zip
recommend-type

matlab基于matlab的两步定位软件定义接收机的开源GNSS直接位置估计插件模块.zip

matlab基于matlab的两步定位软件定义接收机的开源GNSS直接位置估计插件模块.zip
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

2. 通过python绘制y=e-xsin(2πx)图像

可以使用matplotlib库来绘制这个函数的图像。以下是一段示例代码: ```python import numpy as np import matplotlib.pyplot as plt def func(x): return np.exp(-x) * np.sin(2 * np.pi * x) x = np.linspace(0, 5, 500) y = func(x) plt.plot(x, y) plt.xlabel('x') plt.ylabel('y') plt.title('y = e^{-x} sin(2πx)') plt.show() ``` 运行这段
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。