PDA

View Full Version : سوال: تعیین سطح دسترسی برای کاربران با role یکسان



kavayo
دوشنبه 15 اردیبهشت 1393, 17:16 عصر
من برای تعیین سطح دسترسی از membership ها استفاده میکنم حال میخواهم برای یک گروه خاص از افراد که دارای role یکسان هستند سطح دسترسی متفاوت تری بزارم ،آیا بهتره که UserId این افراد رو در جدولی ذخیره کنم و هنگام کانکت شدن انها سطح دسترسی انها را با توجه به UserId انها چک کنم ؟

majidnazari65
دوشنبه 15 اردیبهشت 1393, 18:43 عصر
تعیین سطح دسترسی با توجه به userID راه درستی نیست. فرض کن یک کاربر جدید با یک نقش خاص اضافه بشه. در این صورت برای این کاربر جدید چطور میخوای سطح دسترسی رو تعریف کنی؟
به نظر من بهتره role های بیشتری تعریف کنی.

kavayo
دوشنبه 15 اردیبهشت 1393, 22:51 عصر
من مثلا یه قسمت admin ایجاد کرده ام که مدیران یک سازمان خاص میتوانند تغییرات رو بر روی اطلاعاتشان را انجام دهند من میخوام هر مدیر اطلاعات سازمانی تحت مدیریت خویش را ببیند و تغییر دهد بنابراین role های یکسانی دارند حال چه کنم ؟

meisam12
دوشنبه 15 اردیبهشت 1393, 23:38 عصر
من مثلا یه قسمت admin ایجاد کرده ام که مدیران یک سازمان خاص میتوانند تغییرات رو بر روی اطلاعاتشان را انجام دهند من میخوام هر مدیر اطلاعات سازمانی تحت مدیریت خویش را ببیند و تغییر دهد بنابراین role های یکسانی دارند حال چه کنم ؟
شما می توانید یک جدول UserType( که نوع کاربران در آن مشخص می شود) و Page(نام صفحات aspx) و Access دارید در جدول Access مشخص می شود که چه نوع کاربری به چه صفحه ای دسترسی دارد.
یک پروژه در این سایت آپلود کردم که این ویژگی را دارد.
http://barnamenevis.org/showthread.php?451113-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%DA%A9%D9%86%DB%8C%D8%AF-%D8%B1%D8%B2%D8%B1%D9%88-%D8%A7%D8%AA%D8%A7%D9%82-%D9%87%D8%AA%D9%84

majidnazari65
دوشنبه 15 اردیبهشت 1393, 23:44 عصر
آیا مسیر دسترسی مدیران در قسمت admin یکسانه؟ یعنی همه مدیران بعنوان مثال برای ویرایش اطلاعات سازمانشون به admin/edit/ مراجعه میکنن؟
اگر اینطور نیست و مسیرها جداست بهتره نقشهای مختلف ایجاد کنی و به هر کدوم سطح دسترسی بدی به مسیرش.

اگر مسیرها یکسانه بنابراین برای اعمال سطح دسترسی برای مدیران محتلف، باید کد بنویسی.
به هر حال برای یک مدیر خاص باید بدونی که این الان مدیری کجاس؟ که این رو باید در دیتابیس ذخیره کنی. مثلا طرف نقش admin داره و میتونه اطلاعات سازمان part1 و part2 رو ویرایش کنه. (یعنی مدیر part1 و part2 هست)
همچنین مثلا توی صفحه ویرایش باید بدونی که اطلاعات کدوم سازمان داره ویرایش میشه؟ حالا بر اساس این که part1 یا part2 انتخاب شده و آیا کاربر اجازه داره این قسمتها رو مدیریت کنه اطلاعات رو استخراج میکنی و نمایش میدی.
نظر من اینه که part1 و part2 رو هم در roleها ذخیره کنی و برای یک کاربر علاوه بر admin این roleهای اضافه رو هم درنظر بگیری که مشخص کننده سازمان مربوط به اون هست.
اینکه میگم part1 و part2 رو هم به عنوان رول ذخیره کنی به این دلیله که دیگه فیلدهای اضافه توی دیتابیس تعریف نکنی و به راحتی بتونی سازمان یک کاربر رو تشخیص بدی.

sepehrforough
دوشنبه 15 اردیبهشت 1393, 23:59 عصر
سلام من هم همین مشکل رو دارم


ولی فکر کنم این راه که البته خودم توش فعلا دارم پیش میرم مناسب باشه

ببینید ، علاوه بر رول های ممبر شیپ ، باید چهار تا جدول درست کنید



به صورت زیر
118677118678118679118680




که بعدش با ورود به هر صفحه ای طبق نقش ، با گرفتن آیدی صفحه ، و یوزر نیم ، یا یوزر آیدی ، مشخص میشه که چه کسی به کدوم اکشن ها ت صفحه ی حاص دسترسی دارن ، حتی اگر نقش هاشون با هم مشترک باشه


حالا من خودم دارم اینو میبرم جلو ، ولی این بهترین راهه ممکنه

kavayo
سه شنبه 16 اردیبهشت 1393, 12:56 عصر
با تشکر از راهنمایی شما ،اما من میخوام مثلا در اینجا مدیران هتل فقط مشخصات هتل خود را ببینند و تغییرات را در ان اعمال کنند ایا من اگر UserId انها را مثلا در جدول هتل ها ثبت کنم و موقع ورود این مدیران طبق UserID انها فقط مشخصات هتل تحت مدیریت خود راببینند بهتر نیست ؟