ورود

View Full Version : افزودن فیلد به IdentityUser



raha raad
یک شنبه 02 مهر 1396, 14:10 عصر
با سلام و ادب.
بنده قصد دارم علاه بر فیلدهای پیش فرضی که برایIdentityUser در AppUser:IdentityUser تعریف شده است، یکسیری فیلد دیگه هم اضافه کنم مثل دریافت شماره کارت ملی؛ اما نمی دونم چطور؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ لازم به ذکره که از گزینه پیش فرض Individual User Account در زمان ایجاد پروژه ام استفاده نشده.

ali_md110
یک شنبه 02 مهر 1396, 15:26 عصر
بعضی از دوستان بی دلیل از Individual User Account صرفه نظر کرده و بصورت دستی پیاده سازی Identity رو انجام میدن که فقط وقت تلف کردن هست چون در نهایت باید تمام مراحل ویزاردی دوباره انجام بشه

اگر کلاس User شما از کلاس جنریک IdentityUser ارث بری کرده باشید کافیه فقط اعضای دلخواهتون اضافه کنید


public class ApplicationUser : IdentityUser
}
public string FirstName { get; set; }
public string LastName { get; set; }
public string ZipCode { get; set; }

{

دستورات Enable-Migrations و Update-Database رو هم فراموش نکنید و در پاور شل اجرا بکنید

سعید کشاورز
یک شنبه 02 مهر 1396, 19:44 عصر
یه مورد دیگه هم هست..این مورد تجربه بنده هست نمیدونم درسته یا غلطه اما به نظرم بهتره به فیلد های Identity اصلا گزینه ای اضافه نکنیم.
مثلا فرض کنید داخل یه نرم افزار مدیریت آموزشگاه افراد مختلفی اعم از دانش آموز،استاد،مدیر سیستم و ... نام کاربری و رمز عبور داشته باشن.
حالا دانش آموز شاید کد ملیش مهم باشه اما استاد نه..
پس چرا باید الکی فیلد اضافه کنیم به جدول User?
به نظرم بهتره برای هر نوع کاربر یه جدول جدا در نظر گرفته بشه مثلا Student , Teacher
که هرکدوم از اونا یه فیلد UserId هم دارن.
اینجوری به نظرم دست آدم باز تره.
چون همه اینا در آخر تبدیل به همون User میشن که نام کاربری و پسورد و Permission دارن.

hakim22
یک شنبه 02 مهر 1396, 21:05 عصر
یه مورد دیگه هم هست..این مورد تجربه بنده هست نمیدونم درسته یا غلطه اما به نظرم بهتره به فیلد های Identity اصلا گزینه ای اضافه نکنیم.
مثلا فرض کنید داخل یه نرم افزار مدیریت آموزشگاه افراد مختلفی اعم از دانش آموز،استاد،مدیر سیستم و ... نام کاربری و رمز عبور داشته باشن.
حالا دانش آموز شاید کد ملیش مهم باشه اما استاد نه..
پس چرا باید الکی فیلد اضافه کنیم به جدول User?
به نظرم بهتره برای هر نوع کاربر یه جدول جدا در نظر گرفته بشه مثلا Student , Teacher
که هرکدوم از اونا یه فیلد UserId هم دارن.
اینجوری به نظرم دست آدم باز تره.
چون همه اینا در آخر تبدیل به همون User میشن که نام کاربری و پسورد و Permission دارن.

البته به نظر من اینقدر وسواس داشتن در یکدست بودن جداول نیاز نیست. دیتابیس ها برای کار با جداول بزرگ و تعداد زیاد داده ساخته شدن و از این بابت مشکلی پیش نمیاد.
بهتره همه ی فیلدهای کاربرها رو در همون Identity نگه دارید. به طور کلی دو جدول که با هم رابطه ی یک به یک دارن بهتره یکی باشن. هزینه ی مدیریت دو جدول زیاده.

ضمن اینکه شما می توانید از جدول Claims برای ذخیره کردن مشخصات عمومی کاربرها استفاده کنید. این جدول Key/Value هست و می توانید هر نوع اطلاعات مربوط به یک کاربر رو در اون ذخیره کنید.
(مثلا مشخصاتی که بین چند کاربر ممکنه یکی نباشه)