پنل اختصاصی باتوجه به نقش کاربران
سلام
قصد ایجاد یک پروژه رو دارم که
1 - کاربران این سایت 3 نوع نقش مختلف دارن ( کاربر عادی ، نویسنده ، ادمین)
2 -کاربران دارای پنل های اختصاصی با توجه به نقششون باشن
3 - موقع ثبت نام اطلاعات کاربران ( کاربر عادی ، نویسنده ، ادمین) با هم متفاوت است
با توجه به توضیحات بالا ممنون میشم در مورد مسایل زیر راهنمایی کنید.
1 -چون از کلاس Identity استفاده میکنم باید تمام اطلاعات کاربران در جدول ApplicationUsers ثبت بشه یا امکان تفکیک جدول کاربران با توجه به نقش کاربران وجود داره ؟؟؟
2 - از یک پنل برای 3 نقش (یک Area کلی برای 3 نقش) استفاده بشه یا از 3 پنل (3 Area برای هر نقش) تفکیک شده ؟
پاسخ هوش مصنوعی
سلام،
برای پروژه ای که توصیف کردید، پیشنهاداتی دارم:
1. در مورد استفاده از جدول ApplicationUsers
:
می توانید از یک جدول واحد با ستون های اضافی برای هر نقش استفاده کنید و در صورت نیاز از فیلدهای optional استفاده کنید.
اما همچنین می توانید سه جدول مجزا برای هر نقش ایجاد کنید (مثلاً RegularUsers
، Writers
و Admins
) که به تفکیک اطلاعات کاربران کمک می کند.
2. در مورد پنل های کاربران:
بهتر است از پنل های جداگانه برای هر نقش استفاده کنید تا هر نوع کاربر بتواند فقط به اطلاعات و قابلیت های مربوط به خودش دسترسی داشته باشد.
این کار به سادگی مدیریت و نگهداری برنامه کمک می کند، و هر نقش می تواند ویژگی های خاص خود را داشته باشد.
امیدوارم این اطلاعات به شما کمک کند!
سلام
با توجه به اینکه شما 3 نوع نقش متفاوت دارید، یعنی ادمین، نویسنده و کاربر عادی اگر دسترسی ها و منوهای این 3 نوع کاربر خیلی متفاوت هست با هم بهتره 3 پنل جداگانه قرار بدید. البته اگر 3 Area داشته باشید خیلی بهتره چون در این حالت 3 مسیر کاملا جدا ایجاد کردید که هیچ کاربری از مسیر کاربر دیگه اطلاعی نداره و از نظر امنیت پروژه هم بهتر هست.
اما در مورد اطلاعات کاربران شما باید در جدول AspNetUsers اونها رو نگهداری کنید. ولی در اینجا نکاتی وجود داره، اگر تعداد User های سیستم خیلی زیاد هست بهتره بعضی از اطلاعات رو به جداول دیگه ای منتقل کنید و توسط کلید خارجی به جدول User ارتباطشون بدید.
به عنوان مثال:
فرض کنید که شما لیست همه رشته های تحصیلی رو در یک جدول دارید و در جدول دیگه هم لیست گرایش های مختلف رو دارید و موقعی که کاربری رو ایجاد می کنید رشته تحصیلی و گرایشش رو مشخص می کنید. (مثلا رشته کامپیوتر --> گرایش نرم افزار)
خب در این حالت بهتره که اطلاعات رشته تحصیلی و گرایش رو داخل جدول User نذارید و یک جدول دیگه با فیلدهای UserID و CourseID و LessonID ایجاد کنید و آی دی کاربر، آی دی رشته تحصیلی و آی دی گرایش رو در این جدول نگهداری کنید تا حجم اطلاعات جدول User کمتر بشه.
اما همه کاربران باید در همین جدول AspNetUsers باشن و نمیشه 2 یا چندتا جدول User ایجاد کرد طبق اصول Identity
با توجه به نقش هایی که تعریف کردید؛ معمولا پنل نویسندگان و مدیران یکسان هست و کاربران عادی مجزا. یعنی یک area عمومی داشته باشید و یک area مدیریتی.
برای پنل مشترک نویسندگان و مدیران میتونید خیلی راحت با توجه به نقش کاربر، منوها و دسترسی ها رو فیلتر کنید. استفاده از tag-helper های .net core جهت فیلتر منوی مدیریتی خیلی کار رو راحت میکنه: مثلا:
<security-trimming asp-area="" asp-controller="ControllerName" asp-action="ActinName">
<li>
<a href="@Url.Action("ActinName","ControllerName",new {area="" })">لیست مقالات</a>
</li>
</security-trimming>
کاربران همگی در جدول user هستند و بوسیله role های identity ، نقش هاشون مشخص میشه. و خیلی راحت میتونی برای هر کاربر چندتا نقش اختصاص بدی.(مثلا هم نویسنده باشه و هم مدیر...)
اطلاعات مشترک کاربران در همان جدول user قرار میگیره و اطلاعات اضافی در جدوال وابسته قرار میگیرند.
- آموزش استفاده از پلاگین گردونه شانس در Asp.net core به همراه سورس
- نمایش متن به صورت فرمت شده در CkEditor
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2