.NET Core - المصادقة (Authentication) والتفويض (Authorization)
.NET Core - المصادقة (Authentication) والتفويض (Authorization)
في أي تطبيق ويب احترافي، نحتاج إلى التحكم بمن يستطيع الدخول، وماذا يمكنه أن يفعل داخل النظام. هنا يأتي دور المصادقة (Authentication) والتفويض (Authorization)، وهما حجر الأساس لأمان التطبيقات في ASP.NET Core.
🔐 ما الفرق بين Authentication وAuthorization؟
العنصر | التعريف |
---|---|
Authentication | التحقق من هوية المستخدم. هل هو مسجل دخول؟ من هو؟ |
Authorization | التحقق مما إذا كان للمستخدم صلاحية للقيام بشيء ما بعد تسجيل الدخول. |
🔹 إعداد المصادقة في ASP.NET Core
افترض أننا نريد حماية بعض الصفحات أو الـ APIs لتسمح فقط للمستخدمين المسجلين بالدخول:
// في Program.cs
builder.Services.AddAuthentication("MyCookieAuth")
.AddCookie("MyCookieAuth", options =>
{
options.LoginPath = "/Account/Login";
});
app.UseAuthentication();
app.UseAuthorization();
🔸 تم إعداد مصادقة باستخدام الكوكيز وتحديد مسار تسجيل الدخول.
🔹 حماية الصفحات باستخدام [Authorize]
[Authorize]
public IActionResult Dashboard()
{
return View();
}
🔸 هذا يمنع الوصول للصفحة إلا إذا كان المستخدم قد سجل الدخول.
🔹 التفويض حسب الأدوار (Roles)
يمكنك تخصيص صلاحيات الوصول بناءً على الدور:
[Authorize(Roles = "Admin")]
public IActionResult AdminOnly()
{
return View();
}
🔹 التفويض حسب السياسات (Policies)
يمكنك بناء سياسة مخصصة باستخدام Claims:
// في Program.cs
builder.Services.AddAuthorization(options =>
{
options.AddPolicy("MustBeEgyptian", policy =>
policy.RequireClaim("Nationality", "Egyptian"));
});
ثم في الكنترولر:
[Authorize(Policy = "MustBeEgyptian")]
public IActionResult NationalService()
{
return View();
}
🔹 الخلاصة
في ASP.NET Core:
- تستخدم Authentication للتحقق من هوية المستخدم.
- تستخدم Authorization لتحديد ما يُسمح له بفعله.
- يمكنك تخصيص الوصول باستخدام
[Authorize]
، الأدوار، أو السياسات حسب الحاجة.
تعليقات
إرسال تعليق