PDA

View Full Version : سوال: بهترین روش مدیریت Role های کاربران در برنامه های کاربردی



araelectronic@ymail.com
یک شنبه 17 بهمن 1389, 19:46 عصر
با سلام

من چند وقت هست که دنبال راه مدیریت رولهای کاربران و همچنین روش مطمئن برای login هستم در اکثر موارد دوستان به membership دات نت اشاره کرده اند . ولی تا آنجاکه من متوجه شده ام membership با همه مزایاش یکسری معایبی هم داره که از جمله آنها محدودیت در تغییر سطح دسترسی رولهاست البته بصورت پویا .

بعنوان مثال فرض کنیم یک برنامه کاربردی تحت وب طراحی کرده ایم که کاربران یک اداره از آن استفاده می کنند . اگر از membership استفاده کنیم باید رولها و محدوده عملکرد آنها را تعیین کنیم و تغییرات لازم را در کانفیگ هر فولدر اعمال نماییم . حالا اگر تعداد صفحات زیاد باشه ودسترسی رولها پیچیده بشن این فولدر بندی بسیار مشکل میشه (یک رول به صفحات x-f دیگری به a-j دیگری به p-y و ...) و شاید عملا غیر ممکن هست که فولدر بندی بکنیم و یا اینکه نیاز میشه بطور پویا سطح دسترسی یک رول تغییر بکنه در چنین مواردی آیا باز هم میشه از membership استفاده کرد ؟ یا اینکه login و مدیریت رولها دستی باید انجام شود ؟

با تشکر

Mostafa_Dindar
یک شنبه 17 بهمن 1389, 21:49 عصر
سلام ,

بله ، در چین شرایطی شما میتونید به صورت داینامیک نیز Web.config را تغیر دهید .

لطفا در این مورد جستجو بفرمائید . چند روز پیش یکی از دوستان در همین مورد پست زده بود .

موفق باشید .

araelectronic@ymail.com
یک شنبه 17 بهمن 1389, 22:18 عصر
جناب دیندار ممنون از جوابتون ولی مشکل نوشتن وب کانفیگ نیست مشکل من این هست که یک کاربر با یک رول خاص فقط باید بخشی از یک فولدر را ببیند نه همه صفحات را . مثلا کاربر بایگانی میتواند صفحات داخل بخش بایگانی را ببیند و نیاز هست که چند صفحه از فولدر بخش دبیرخانه را هم ببیند . در اینحالت اگر در کانفیگ اجازه بدیم که به فولدر دبیرخانه دسترسی داشته باشه آنوقت همه فولدر را خواهد دید . البته وقتی تعداد این تداخلها معلوم باشه و کم باشه میشه فولدر بندی را تغییر داد ولی وقتی زیاد هست و نا معلوم و از همه مهمتر پویا آیا باز هم member ship جوابگو هست ؟

با تشکر

Mostafa_Dindar
یک شنبه 17 بهمن 1389, 22:30 عصر
لزومی نیست که Folder بندی کنید , حتی میتونید همه صفحات رو در یک فلدر داشته باشید ولی با
<location path="Register.aspx"> بر آن مدیریت داشته باشید , بعنوان نمونه :



<location path="Register.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>

araelectronic@ymail.com
یک شنبه 17 بهمن 1389, 22:56 عصر
خوب در این حالت اگه امکان دسترسی داده بشه ، کاربر همه صفحاتو میبینه . بذارید سوالمو طور دیگه مطرح کنم : من میخوام برای هر صفحه بطور مجزا اجازه دسترسی بدم تو کانفیگ میشه لیست کرد که برای هر صفحه بطور مجزا کدام رولها دسترسی داشته باشند ؟

با تشکر

Mostafa_Dindar
یک شنبه 17 بهمن 1389, 23:06 عصر
خوب در این حالت اگه امکان دسترسی داده بشه ، کاربر همه صفحاتو میبینه . بذارید سوالمو طور دیگه مطرح کنم : من میخوام برای هر صفحه بطور مجزا اجازه دسترسی بدم تو کانفیگ میشه لیست کرد که برای هر صفحه بطور مجزا کدام رولها دسترسی داشته باشند ؟

با تشکر

دوست من , دقت نکردی , اون تنها یک مثال بود , هدف استفاده از location بود و تعین سطح دسترسی متفاوت برای صفحات متفاوت که در یک دایرکتوری قرار گرفته اند . لطفا به این مثال دقت بیشتری عنایت بفرمائید :


<location path="Page1.aspx">
<system.web>
<authorization>
<allow roles="Role1" />
<deny users="*" />
</authorization>
</system.web>
</location>
<location path="Page2.aspx">
<system.web>
<authorization>
<allow roles="Role2" />
<deny users="*" />
</authorization>
</system.web>
</location>
<location path="Page3.aspx">
<system.web>
<authorization>
<allow roles="Role1" />
<allow roles="Role1" />
<deny users="*" />
</authorization>
</system.web>
</location>
<location path="PageN.aspx">
<system.web>
<authorization>
.
.
.
</authorization>
</system.web>
</location>
.
.
.شب بخیر :لبخندساده:

araelectronic@ymail.com
دوشنبه 18 بهمن 1389, 02:22 صبح
پس با این حساب می تونیم به ازای هر صفحه یک رول ایجاد کنیم و برای هر کاربر رول مربوط به صفحه مورد نظر را بدیم ؟ درست متوجه شدم یا اینکه این روال اشتباه هست ؟ آیا امکان این وجود دارد که بیش از یک رول به کابر بدیم ؟

با تشکر

Mostafa_Dindar
دوشنبه 18 بهمن 1389, 09:08 صبح
پس با این حساب می تونیم به ازای هر صفحه یک رول ایجاد کنیم و برای هر کاربر رول مربوط به صفحه مورد نظر را بدیم ؟



بله , این کار امکان پذیر است .

آیا امکان این وجود دارد که بیش از یک رول به کابر بدیم ؟

بله , شما هر چند تا نقش که دوست داشته باشید میتوانید به یک کاربر انتصاب بدید .