ایجاد یک سیستم مدیریت حساب کاربران با استفاده از **ASP.NET Web Forms** میتواند شامل قابلیتهای ثبتنام، ورود، ویرایش اطلاعات حساب و حذف حساب باشد. در اینجا یک راهنمای جامع برای پیادهسازی این سیستم ارائه میشود.
### مراحل پیادهسازی
#### 1. ایجاد پروژه ASP.NET Web Forms
- در **Visual Studio**، یک پروژه جدید از نوع **ASP.NET Web Application** ایجاد کنید.
- از الگوی **Web Forms** استفاده کنید.
#### 2. ایجاد مدل کاربر
یک کلاس مدل به نام **User** ایجاد کنید که شامل اطلاعات کاربر باشد:
```csharp
public class User
{
public int Id { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public string Email { get; set; }
}
```
#### 3. ایجاد پایگاه داده
برای ذخیرهسازی اطلاعات کاربران، یک پایگاه داده ایجاد کنید. به عنوان مثال، پایگاه دادهای با نام **UserDB** و جدول **Users** به شکل زیر:
```sql
CREATE TABLE Users (
Id INT PRIMARY KEY IDENTITY(1,1),
Username NVARCHAR(100) UNIQUE,
Password NVARCHAR(100),
Email NVARCHAR(100)
);
```
#### 4. اضافه کردن اتصال به پایگاه داده
در فایل **Web.config**، رشته اتصال به پایگاه داده را اضافه کنید:
```xml
```
#### 5. ایجاد صفحه ثبتنام (Register.aspx)
یک صفحه جدید به نام **Register.aspx** ایجاد کنید و کد زیر را در آن قرار دهید:
```html
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Register.aspx.cs" Inherits="Register" %>
ثبتنام
```
#### 6. نوشتن کد برای ثبتنام در Register.aspx.cs
در فایل **Register.aspx.cs**، کد زیر را برای ذخیره اطلاعات کاربر در پایگاه داده بنویسید:
```csharp
using System;
using System.Configuration;
using System.Data.SqlClient;
public partial class Register : System.Web.UI.Page
{
private string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
protected void btnRegister_Click(object sender, EventArgs e)
{
string username = txtUsername.Text;
string password = txtPassword.Text;
string email = txtEmail.Text;
if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(password) && !string.IsNullOrEmpty(email))
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand("INSERT INTO Users (Username, Password, Email) VALUES (@Username, @Password, @Email)", connection);
command.Parameters.AddWithValue("@Username", username);
command.Parameters.AddWithValue("@Password", password); // در عمل باید رمز عبور هش شود
command.Parameters.AddWithValue("@Email", email);
connection.Open();
command.ExecuteNonQuery();
}
lblStatus.Text = "کاربر با موفقیت ثبتنام شد.";
txtUsername.Text = string.Empty;
txtPassword.Text = string.Empty;
txtEmail.Text = string.Empty;
}
else
{
lblStatus.Text = "لطفاً تمام فیلدها را پر کنید.";
}
}
}
```
#### 7. ایجاد صفحه ورود (Login.aspx)
یک صفحه جدید به نام **Login.aspx** ایجاد کنید و کد زیر را در آن قرار دهید:
```html
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" %>
ورود
```
#### 8. نوشتن کد برای ورود در Login.aspx.cs
در فایل **Login.aspx.cs**، کد زیر را برای ورود کاربر بنویسید:
```csharp
using System;
using System.Configuration;
using System.Data.SqlClient;
public partial class Login : System.Web.UI.Page
{
private string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
protected void btnLogin_Click(object sender, EventArgs e)
{
string username = txtUsername.Text;
string password = txtPassword.Text;
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand("SELECT COUNT(*) FROM Users WHERE Username = @Username AND Password = @Password", connection);
command.Parameters.AddWithValue("@Username", username);
command.Parameters.AddWithValue("@Password", password);
connection.Open();
int userCount = (int)command.ExecuteScalar();
if (userCount > 0)
{
// ورود موفق
Response.Redirect("Profile.aspx");
}
else
{
lblLoginStatus.Text = "نام کاربری یا رمز عبور نادرست است.";
}
}
}
}
```
#### 9. ایجاد صفحه پروفایل کاربر (Profile.aspx)
یک صفحه جدید به نام **Profile.aspx** ایجاد کنید و کد زیر را در آن قرار دهید:
```html
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Profile.aspx.cs" Inherits="Profile" %>
پروفایل کاربر
```
#### 10. نوشتن کد برای پروفایل کاربر در Profile.aspx.cs
در فایل **Profile.aspx.cs**، کد زیر را برای نمایش اطلاعات کاربر و مدیریت ویرایش و حذف بنویسید:
```csharp
using System;
using System.Configuration;
using System.Data.SqlClient;
public partial class Profile : System.Web.UI.Page
{
private string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadUserProfile();
}
}
private void LoadUserProfile()
{
// فرض بر این است که نام کاربری در session ذخیره شده است
string username = "exampleUser"; // به عنوان مثال، میتوانید نام کاربری را از Session دریافت کنید
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand("SELECT Username FROM Users WHERE Username = @Username", connection);
command.Parameters.AddWithValue("@Username", username);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
if (reader.Read())
{
lblUsername.Text = "نام کاربری:
" + reader["Username"].ToString();
}
}
}
protected void btnEdit_Click(object sender, EventArgs e)
{
// اینجا میتوانید کدی برای ویرایش اطلاعات کاربر بنویسید
Response.Redirect("EditProfile.aspx");
}
protected void btnDelete_Click(object sender, EventArgs e)
{
string username = "exampleUser"; // به عنوان مثال، میتوانید نام کاربری را از Session دریافت کنید
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand("DELETE FROM Users WHERE Username = @Username", connection);
command.Parameters.AddWithValue("@Username", username);
connection.Open();
command.ExecuteNonQuery();
}
Response.Redirect("Register.aspx"); // به صفحه ثبتنام بروید
}
}
```
### 11. اضافه کردن صفحه ویرایش پروفایل (EditProfile.aspx)
یک صفحه جدید به نام **EditProfile.aspx** ایجاد کنید و کد زیر را در آن قرار دهید:
```html
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="EditProfile.aspx.cs" Inherits="EditProfile" %>
ویرایش پروفایل
```
### 12. نوشتن کد برای ویرایش در EditProfile.aspx.cs
در فایل **EditProfile.aspx.cs**، کد زیر را برای بروزرسانی اطلاعات کاربر بنویسید:
```csharp
using System;
using System.Configuration;
using System.Data.SqlClient;
public partial class EditProfile : System.Web.UI.Page
{
private string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadUserProfile();
}
}
private void LoadUserProfile()
{
// فرض بر این است که نام کاربری در session ذخیره شده است
string username = "exampleUser"; // به عنوان مثال، میتوانید نام کاربری را از Session دریافت کنید
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand("SELECT Username, Email FROM Users WHERE Username = @Username", connection);
command.Parameters.AddWithValue("@Username", username);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
if (reader.Read())
{
txtUsername.Text = reader["Username"].ToString();
txtEmail.Text = reader["Email"].ToString();
}
}
}
protected void btnUpdate_Click(object sender, EventArgs e)
{
string username = txtUsername.Text;
string email = txtEmail.Text;
// فرض بر این است که نام کاربری تغییر نمیکند، در غیر این صورت باید نام کاربری را نیز در SQL بروز کنید
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand("UPDATE Users SET Email = @Email WHERE Username = @Username", connection);
command.Parameters.AddWithValue("@Username", username);
command.Parameters.AddWithValue("@Email", email);
connection.Open();
command.ExecuteNonQuery();
}
lblStatus.Text = "پروفایل با موفقیت بروزرسانی شد.";
}
}
```
### 13. تست و اجرای پروژه
پس از اتمام مراحل بالا، پروژه را اجرا کنید و صفحات ثبتنام، ورود، پروفایل و ویرایش پروفایل را تست کنید.
### نکات اضافی
- **امنیت**: اطمینان حاصل کنید که اطلاعات کاربر (خصوصاً رمز عبور) به درستی هش و ذخیره شود. میتوانید از **ASP.NET Identity** برای مدیریت کاربر و رمز عبور استفاده کنید.
- **اعتبارسنجی**: اعتبارسنجی مناسب برای ورودیهای کاربر (مانند چک کردن تکراری بودن نام کاربری) اضافه کنید.
- **UI و UX**: برای بهبود تجربه کاربری، میتوانید از CSS و JavaScript استفاده کنید.
با این مراحل، شما یک سیستم مدیریت حساب کاربران ساده با استفاده از **ASP.NET Web Forms** پیادهسازی کردهاید. اگر سوال یا نکتهای دارید، خوشحال میشوم کمک کنم!
| صفحه قابل مشاهده:
دانلود کد ایجاد سیستم مدیریت حساب کاربران با ASP.NET Web Form میباشد