PDA

View Full Version : مدیریت کاربران و نقش های کاربری به صورت پیشرفته و داینامیک



ali helali
یک شنبه 28 خرداد 1391, 03:41 صبح
سلام دوستان برنامه نویس
من تو یه تاپیک نوشته های زیر رو خوندم و به نظرم جالب و منطقی میاد:


بايد احراز هويت و تعريف Role رو با Database مديريت كنيد كه موقعي كه سايتتون Publish شد بتونيد به آنها دسترسي داشته باشيد و مديريت كنيد .
در ASP.net تعريف Role ها و User ها محدود است و بايد تمام User تون رو تو Config file به صورت Hard Code وارد كنيد .
ولي با DataBase مي تونيد با تعريف جدول هاي كاربران ، پروفايل كاربران ، حق دسترسي ها و نوع كاربران اين كاررو كاملا به مديريت كنيد .

همچنین:


خوب ما يه جدول كاربران داريم كه شامل اطلاعات كاربري مثل Username, password , Email,UserID و از همه مهمتر UserTypeID غيره مي باشد .و Primary Key هم UserID است
ما در سايت كاربران رو به چند دسته مي تونيم تقسيم كنيم . مثل مديران و كاربران معمولي
ومدير كل سايت كه اينها در جدول UserType ذخيره ميشوند .
UserTypeID,UserTypeName كه Primary Key اين جدول هم UserTypeID است.
حالا ما نياز به سطح دسترسي ها داريم كه آنها را هم در جدول Permission ذخيره مي كنيم .
مثل حق ايجاد كاربران ، حق حذف مطالب و ...
PermissionID, PremissionName كه Primary Key اين جدول هم PermissionID است.
حالا در يك Table مجزا Permission به گروههاي كاربران(UserType ) نسبت مي دهيم .
و هر وقت كه لازم داشتيم كنترل ميكنيم كه كاربرx كه نوع كاربريش مشخص شده است آيا داري مجوز مورد نظر ميباشد يا نه ؟؟؟

کسی می تونه در این روش اطلاعات کامل و مفیدی بده؟
حتی تو cms ها هم که بگردین این موضوع کاملا دیده میشه. مثلا:


تعیین گروههای مختلف کاربری
تعیین حق دسترسی گروهها بر روی بخشهای مختلف سایت
تعیین اینکه چه افرادی در چه گروههایی قرار می گیرند و چه سطح دسترسی ای به ایشان داده می شود.

اگه کسی اطلاعاتی داره دریغ نکنه، اجرش با خدا

m110_110
یک شنبه 28 خرداد 1391, 08:01 صبح
سلام
ببينيد من براي اين كار سه جدول اصلي مي گيرم كه عبارتند از كاربران ، نقش ها و دسترسي ها كه كارشون به اين صورت هست
ما نقش هاي مختلفي را براي سيستممون در نظر مي گيريم كه هر كدام از ان ها مي توانند دسترسي هاي مختلفي داشته باشند و حالا هر كاربري مي تواند هر چند تا نقش داشته باشند
مثال:
كاربري نقش هاي شماره 1 و 2 را دارند كه اين نقش ها دسترسي هاي شماره 1و 2 و3 را دارا هستند
در نظر داشته باشيد كه رابطه بين جدول كاربران و نقش ها و همچنين نقش ها و دسترسي ها يك رابطه چند به چند هست و بايد خود از جدول واسط استفاده كنيد
در مورد اين نظرم هم اين را اضافه كنم كه اين كار را دقيقا پياده كرده ايم و خدا را شكر جواب هم گرفته ايم و براي يك سيستم راه كار بسيار خوبي بوده ولي اگر دوستان نظر ديگري هم دارند خوشحال مي شويم از نظرشون استفاده كنيم
ياحق

ali helali
یک شنبه 28 خرداد 1391, 11:51 صبح
میشه یه مثال عملی اینجا بزارید؟ چون با کد دیدن بسیار بیشتر میشه یاد گرفت، مخصوصا نحوه ی کار با این نو روش به صورت عملی...

raziee
یک شنبه 28 خرداد 1391, 15:56 عصر
میشه یه مثال عملی اینجا بزارید؟ چون با کد دیدن بسیار بیشتر میشه یاد گرفت، مخصوصا نحوه ی کار با این نو روش به صورت عملی...
بسته به اینکه این سطح دسترسی رو تا چه حدی میخواهید کنترل کنید متفاوت هست. نمیشه یک سیستم واحد براش نوشت.
به عنوان مثال:
تنها کاربری مدیر به صفحات داخل پوشه ی مدیریت دسترسی دارند.
برخی از این کاربران به صفحه X و Y در پوشه ی مدیریت دسترسی دارند.
برخی از کاربران در صفحه X در پوشه مدیریت به بخش ویرایش و حذف دسترسی دارند.
برخی از کاربران در صفحه X در پوشه مدیریت تنها به بخش نمایش دسترسی دارند.

معمولا در سیستم های مدیریت محتوا پوشه ای وجود ندارند و این صفحات و پوشه ها به صورت مجازی هستند.


دات نت نیوک سطح دسترسی خوبی رو داره که بررسی اون میتونه بسیار کمک کنه.

ali helali
یک شنبه 28 خرداد 1391, 17:17 عصر
ممنون از راهنماییتون، دات نت نیوک که MVC نیست؟ هست؟ میشه لینک آخرین ورژنشو بزارید؟

raziee
دوشنبه 29 خرداد 1391, 03:39 صبح
ممنون از راهنماییتون، دات نت نیوک که MVC نیست؟ هست؟ میشه لینک آخرین ورژنشو بزارید؟
خیر ASP.NET MVC نیست. البته در نسخه جدید از API Controller ها استفاده کرده.
http://dotnetnuke.codeplex.com

mojahed
پنج شنبه 05 مرداد 1391, 11:25 صبح
سلام دوستان کسی در مورد سطح دسترسی در mvc به صورت activity based کار کرده اگر کارکرده میشه کسی راهنمایی بکنه.