PDA

View Full Version : Dynamic Permission



javad3151
چهارشنبه 17 مرداد 1386, 21:39 عصر
سلام
در برنامه ای که دارم می نویسم ، مدیر سیستم می تونه کاربر و نقش های کاربری(Role) ایجاد کنه و به هر کاربری نقش های مختلف نسبت بده.
حالا میخوام سیستمی بنویسم که مدیر بتونه برای صفحات مختلف و کنترل های داخل صفحه بصورت داینامیک سطوح دسترسی رو تعریف کنه:متفکر:
اگر درباره ساختار کار راهنمایی کنید ممنون میشم(برای خود صفحات خیلی مشکلی نیست بیشتر برای کنترل های داخل صفحات مشکل دارم)

shahab_ksh
چهارشنبه 17 مرداد 1386, 23:18 عصر
برای هر صفحه یه آیدی تعریف کن که خودشو به مستر پیج معرفی کنه اون وقت تست کن آیا این یوسری که بالا آمده به این صفحه دسترسی داره یا نه برای بخشهای داخل صفحات هم که یه برنامه نوسی معمولی میخاد مشکلی نیست

Silverboy
پنج شنبه 18 مرداد 1386, 10:29 صبح
از loginView برای دسترسی کاربرا به بخش های مختلف میشه استفاده کرد

ClaimAlireza
پنج شنبه 18 مرداد 1386, 10:55 صبح
از loginView برای دسترسی کاربرا به بخش های مختلف میشه استفاده کرد


بابا اول سوال دقیق بخونید بعد جواب بدید.!!!!



سلام
در برنامه ای که دارم می نویسم ، مدیر سیستم می تونه کاربر و نقش های کاربری(Role) ایجاد کنه و به هر کاربری نقش های مختلف نسبت بده.
حالا میخوام سیستمی بنویسم که مدیر بتونه برای صفحات مختلف و کنترل های داخل صفحه بصورت داینامیک سطوح دسترسی رو تعریف کنه:متفکر:
اگر درباره ساختار کار راهنمایی کنید ممنون میشم(برای خود صفحات خیلی مشکلی نیست بیشتر برای کنترل های داخل صفحات مشکل دارم)


دوست عزیزم باید از طریق کد نویسی فایل web.config رو باز یابی کنی و تغییرات رو توی اون اعمال کنی.

برای بازیابی web.config قبلا یادمه یه مواردی بحث شده بود.

javad3151
پنج شنبه 18 مرداد 1386, 20:50 عصر
دوست عزیزم باید از طریق کد نویسی فایل web.config رو باز یابی کنی و تغییرات رو توی اون اعمال کنی.

میشه بیشتر توضیح بدید، بعید میدونم کار استانداری باشه، تازه در web.config فقط دسترسی به صفحات رو میتونید تعیین کنید ولی برای کنترل های داخل صفحات نمیتونید کاری انجام بدید
مثلا فرض کنید کاربرهای گروه X نباید بتونند داده ها رو حذف کنند(کلید "حذف" نمایش داده نشه ، یا غیر فعال باشه)
فکر کنم باید تمام صفحات و کنترل های اون رو همراه با سطوح دسترسی در دیتابیس ذخیره کنم

ClaimAlireza
یک شنبه 21 مرداد 1386, 09:04 صبح
من خودم شخصا تا به حال دسترسی به کنترل ها رو از طریق web.config محدود نکردم.

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

من برای این کار معمولا از role ها استفاده می کنم، مثلا توی page_load_Event میگم اگه فلان کاربر توی role فلان بود مثلا visible فلان کنترل رو false کن.

Amir Taghavi
یک شنبه 21 مرداد 1386, 10:04 صبح
واسه هر User باید Role هاش رو هم در db ذخیره کنی.حالا وقتی User میاد Login میکنه می تونی Role هاش رو بخونی و تو Session , Application و یا هر چیز دیگه ای ذخیره کنی حالا تو هر Page هم خیلی راحت نسبت به هر Role می تونی تصمیم بگیری که چه اتفاقی بیفته.

سار
یک شنبه 21 مرداد 1386, 13:03 عصر
چه نوع Permissionی مد نظر شما ست؟
در حالت کلی میشه گفت دو نوع پرمیشن داریم:
1)DB
2)UI
در مورد UI هم :
1)روی صفحه
3)روی Object
اولی رو از که همه دوستان بهت گفتن چی کار کنی ولی برای دومی به نظر من بهترین راه تولید یک فرم جنریتور هست(چیزی که من تجربه کردم).

javad3151
یک شنبه 21 مرداد 1386, 13:15 عصر
برای دومی به نظر من بهترین راه تولید یک فرم جنریتور هست(چیزی که من تجربه کردم).
با تشکر، میشه بیشتر توضیح بدید

سار
یک شنبه 21 مرداد 1386, 15:28 عصر
راه های مختلفی داره.
میتونی اطلاعات فرمت رو تو یک جدول و یا یک XML قرار بدی و هر بار که فرم صدا زده میشه تک تک آیتم های فرمت رو از اونجا بخونی و خودت بسازی.
تقیبن مثل همون کاری که HTML داره میکنه ولی با قدرت بیشتر.
یه نگاهی به کدهای HTML بنداز. میتونی در گام اول برنامه بسازی که تگ های HTML رو پارس کنه.
وقتی Object رو خودت بسازی ، با توجه به اینکه Role های کاربر وارد شده در دسترس هست فقط کافیه یه فیلد یا تگ داشته باشی که بهت بگه برای چه Roleی باید Enable ,ReadOnly و یا پنهان باشه و حتی اصلن ساخته نشه.

کار سختی نیست من تقریبن در مدن دو روز ساختمش و حالا در سازمان هواپیمایی دارم از اون استفاده میکنم و کارفرما هم کاملن راضی هست.
کمی سعی کنی حتمن موفق میشی.

ClaimAlireza
دوشنبه 22 مرداد 1386, 08:11 صبح
کار سختی نیست من تقریبن در مدن دو روز ساختمش و حالا در سازمان هواپیمایی دارم از اون استفاده میکنم و کارفرما هم کاملن راضی هست.



امکانش هست یه نمونه بزارین.

با تشکر....

رها
دوشنبه 22 مرداد 1386, 09:09 صبح
فکر کنم بشه از web part ها واسه این کار استفاده کرد یعنی کنترلهایی که می خواهید فقط یک نقش اون رو ببینه توی یک پارت بذارید و توی page load چکش کنید.

سار
دوشنبه 22 مرداد 1386, 19:01 عصر
شرمنده من بودم جواب بدم.
والا نمونه که شرمندم چون اون پروژه مال شرکت هست و به سازمان فروخته شده ولی بدون دادن قول در صورتی که وقت کردم یه تیکه کد برات می نویسم.
در ضمن کاری که من گفتم با WEB Part فرق میکنه.