.NET Core - استخدام Identity في ASP.NET Core
.NET Core - استخدام Identity في ASP.NET Core
ASP.NET Core Identity هو نظام جاهز لإدارة تسجيل الدخول، تسجيل المستخدمين، كلمات المرور، الأدوار (Roles)، والصلاحيات (Claims). يوفر لك إطار عمل قوي يمكنك تخصيصه حسب احتياجات مشروعك.
🔹 ما الذي يوفره Identity؟
- تسجيل الدخول (Login) وتسجيل الخروج (Logout)
- تسجيل المستخدمين الجدد (Register)
- إدارة كلمات المرور وتأكيد البريد
- إدارة الأدوار والصلاحيات
- دعم الجلسات باستخدام الكوكيز أو الـ JWT
🔹 تثبيت الحزمة اللازمة
dotnet add package Microsoft.AspNetCore.Identity.EntityFrameworkCore
أو من خلال NuGet GUI داخل Visual Studio.
🔹 إنشاء نموذج المستخدم (ApplicationUser)
using Microsoft.AspNetCore.Identity;
public class ApplicationUser : IdentityUser
{
public string FullName { get; set; }
}
🔹 إعداد DbContext مع Identity
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
public class AppDbContext : IdentityDbContext<ApplicationUser>
{
public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }
}
🔹 تسجيل الخدمات في Program.cs
builder.Services.AddDbContext<AppDbContext>(options =>
options.UseSqlServer("YourConnectionString"));
builder.Services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores<AppDbContext>();
🔹 إنشاء الجداول الخاصة بـ Identity
dotnet ef migrations add AddIdentity
dotnet ef database update
💡 سيتم إنشاء جداول مثل:
AspNetUsers
, AspNetRoles
, AspNetUserRoles
, AspNetUserClaims
...
🔹 استخدام خدمات Identity
قم بحقن الكلاسات التالية في الكونترولر أو الخدمة:
private readonly UserManager<ApplicationUser> _userManager;
private readonly SignInManager<ApplicationUser> _signInManager;
public AccountController(UserManager<ApplicationUser> userManager,
SignInManager<ApplicationUser> signInManager)
{
_userManager = userManager;
_signInManager = signInManager;
}
🔹 تسجيل مستخدم جديد
var user = new ApplicationUser { UserName = "mahmoud", Email = "test@test.com" };
var result = await _userManager.CreateAsync(user, "P@ssw0rd");
🔹 تسجيل الدخول
var result = await _signInManager.PasswordSignInAsync("mahmoud", "P@ssw0rd", true, false);
🔹 الخلاصة
ASP.NET Identity يوفر حلًا جاهزًا ومرنًا لإدارة المستخدمين والأدوار في تطبيقك. يمكنك تخصيصه بسهولة وإضافة خصائص جديدة حسب الحاجة
تعليقات
إرسال تعليق