ما در پروژه خودمون که با Asp.net core هست چند نوع کاربر داریم. کاربران ما شامل :
حالا یک سوال برای من پیش اومده در اینجا. هر کاربر در سیستم ما به یکسری Page ها دسترسی داره و صفحات مخصوص به خودش رو داره. اما من می خوام برای هر کاربر یک جدول جداگانه در نظر بگیرم و از امکانات Identity هم برای اون استفاده کنم. یعنی 4 تا جدول User میخوام و میخوام دستورات Identity برای هر 4 نوع از کاربر هم استفاده شود.
لطفا راهنمایی کنید که چجوری باید این کار رو انجام بدم. چون وقتی که جداول Identity رو ایجاد می کنیم فقط یک جدول به نام AspNetUsers رو ایجاد میکنه.
و لطفا بفرمایید که این کاری که من میکنم منطقی هست یا نه
ممنون
جداول Identity برای ذخیره مشخصات فردی و رمز عبور و غیره می باشد و این موجودیت (استاد، کارمند، دانشجو و غیره) که شما در اینجا مطرح کردید نقش هستند و باید در جدول Role تعریف کنید در جداول AspnetUser مشخصات فردی هر موجود زنده انسانی یا به اصطلاح هر شغل و حرفه ای را می توانید ذخیره کنید، البته در صورتی که اطلاعات دیگری برای این افراد دارید می توانید جداول جداگانه برای آنها بسازید و یک کلید خارجی در آنها تعریف کنید برای مثال Id و در واقع این کلید به جدول کاربران متصل خواهد بود و مشخص میکند که اطلاعاتی که شما در جدول وارد میکنید مربوط به کدام کاربر است حالا نقش آن مهم نیست ، در مجموع برای اینکار شما باید طریقه استفاده و ارتباط جداول AspnetUser و AspnetRole و AspnetUserRole را باهم بدانید و همینطور برای کار با این جداول بهتر است از خصوصیت های async await در اکشن های کنترل خودتان استفاده کنید... برای احراز هویت هم از خصوصیت احراز هویت Authorize برای هر کنترل یا اکشن استفاده می شود که هر کاربر به صفحه ی مربوط به خودش دسترسی داشته باشد آن هم از طریق همین جداول Role ها که در بالا اشاره شد..
به طور کلی شما نیاز به چند جدول ندارید و بهترین پیاده سازی اینه که از Role ها برای تمایز قرار دادن بین هویت های مختلف در پروژه استفاده کنید. اگر مشخصاتی برای هویتهای مختلف باید در دیتابیس ذخیره بشه میتونید از Claims ها یا یک جدول Key/Value استفاده کنید یا خیلی ساده همه ی ستونهای همه ی هویتهارو درون جدول Users تعریف کنید و مشخصاتی که یک هویت خاص نداره Null باقی میمونه. اشکالی نداره که ستونهای یک جدول موارد زیادی نال داشته باشه.
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
57
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
97
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1031
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
426
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1348
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4796
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
205
- پاسخ :
1
|
تاریخ :
1403/07/26
- ساعت :
09:00:00 PM
- بازدید :
116
- پاسخ :
0
|
تاریخ :
1403/05/16
- ساعت :
09:57:00 AM
- بازدید :
395
- پاسخ :
2
|
تاریخ :
1403/06/25
- ساعت :
11:39:00 PM
- بازدید :
562
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
57
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
97
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1031
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
426
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
930
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1348
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4796
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1157
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
595
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
205
- پاسخ :
1
|