ASP.NET Core Identity چیست؟
سیستم عضویت آماده مایکروسافت برای مدیریت کاربر، رمز عبور (Hashشده)، نقش و ورود دوعاملی — بدون نیاز به پیادهسازی از صفر.
چرا مهم است؟
ساخت دستی سیستم مدیریت کاربر (Hash رمز عبور، بازیابی، قفل حساب بعد از تلاش ناموفق) پر از جزئیات امنیتی ظریف است؛ Identity اینها را آماده و تستشده میدهد.
تعریف
ASP.NET Core Identity یک کتابخانه عضویت کامل است: ثبتنام، ورود، Hash امن رمز عبور (PBKDF2)، نقش (Role)، قفل حساب بعد از تلاش ناموفق مکرر، و پشتیبانی از ورود دوعاملی.
مثال
builder.Services.AddIdentity<ApplicationUser, IdentityRole>(options =>
{
options.Password.RequiredLength = 8;
options.Lockout.MaxFailedAccessAttempts = 5;
})
.AddEntityFrameworkStores<AppDbContext>();
var result = await _userManager.CreateAsync(user, password);
if (!result.Succeeded) return BadRequest(result.Errors);
نکات مهم
- رمز عبور هرگز بهصورت Plain-Text ذخیره نمیشود؛ Identity بهصورت پیشفرض آن را Hash میکند.
- Identity معمولاً برای Session/Cookie طراحی شده؛ برای API معمولاً روی آن JWT هم اضافه میشود (
AddIdentity+AddJwtBearer).
اشتباه رایج
❌ نادیده گرفتن تنظیمات پیشفرض ضعیف (مثل حداقل طول رمز عبور کوتاه) بدون سفارشیسازی برای نیاز واقعی پروژه — همیشه PasswordOptions/LockoutOptions را متناسب با سیاست امنیتی پروژه تنظیم کنید.
منبع و مطالعه بیشتر
خلاصه
ASP.NET Core Identity مدیریت کاربر، Hash امن رمز عبور، نقش و قفل حساب را آماده میدهد، بدون نیاز به پیادهسازی دستی. همیشه تنظیمات پیشفرض رمز عبور و Lockout را برای پروژه خودتان سفارشی کنید. مرجع کامل: مستندات ASP.NET Core Identity، Microsoft Learn.
