ورود

View Full Version : کنترل دسترسی کاربران متعدد



Hossein Bazyan
چهارشنبه 18 مهر 1386, 11:42 صبح
سلام
من سرگرم طراحی سایتی ساده با مشخصات زیر هستم :

سایت دارای چندین صفحه مختلف میباشد. در هر صفحه هم کاربر میتواند رکوردی را حذف، اضافه ، ویرایش و تماشا کند.
سایت تعداد زیادی کاربر بعنوان کارمند دارد . هر کاربر دارای UserName و Password منحصر به خودش است
هر کاربر دسترسی مخصوص به خودش را دارد . مثلا بعضی ها به همه صفحات و بعضی ها به بعضی از صفحات دسترسی دارند.
هر کاربر موقعی که LogOut میکند باید ساعت و زمان ورود و خروج آن در دیتابیس ذخیره شود.
همزمان چندین کاربر در چندین مکان مختلف میتوانند به سایت وارد شده و کار انجام دهند.تا مورد 4 اینجا را من نوشته ام وخوب هم کار میکند. در صفحه اصلی بعد از تائید اسم کاربر و رمز صفحات مجاز برای وی را کنترل و در منوی هر صفحه خاصیت Enable لینکهای غیر مجاز برای وی را False میکند. مشکل من اینه که اگر کاربر دوم لوگین میکند صفحه همه کاربرها به یوزر نام و دسترسی های کاربر جدید تغییر میکند. یعنی همه کسانی که آن لاین هستند نام کاربری و حق دسترسی آخرین نفر وارد شده را دارند.
من میخواهم هر کاربر که وارد میشود نام کاربری و حق دسترسی افراد دیگر محفوظ بماند.
به فکرم رسید که از Session استفاده کنم اما نمیدانم برای این حالت مخصوص به چه شکل استفاده میشه . در ضمن من چندین Session برای رد و بدل نام کاربری و حق دسترسی و زمان ورود کاربران بین صفحات ایحاد کرده ام .
من با Web Developer 2005 و بانک Access کار میکنم .

اگه لازم شد کدهایی را که نوشته ام را بذارم. در ضمن اگه دوستان هم کدی دارند دریغ نکنند.
مرسی

abadanboy
چهارشنبه 18 مهر 1386, 11:50 صبح
به نظره من session بهترین راه هست دقیق نمی دونم چی کار کردی ولی فکر کنم بتونی true و false رو از طریق session انتقال بدی شاید درست شه

Hossein Bazyan
چهارشنبه 18 مهر 1386, 12:14 عصر
به نظره من session بهترین راه هست دقیق نمی دونم چی کار کردی ولی فکر کنم بتونی true و false رو از طریق session انتقال بدی شاید درست شه
سلام
من میخوام حق دسترسی و یوزر نام هر کاربر در کل برنامه تا زمان Logout کردن وی محفوظ بماند . متوجه منظور شما نشدم چه چیزی رو True یا False انتقال بدم؟
در سایتهایی مانند همین سایت یا سایتهایی که سبد خرید دترند به چه شکل حق دسترسی کاربران محفوظ میماند؟

abadanboy
چهارشنبه 18 مهر 1386, 12:47 عصر
خوب شما سطح دسترسی هات رو چطوری به کاربر میدی؟
بنظرم همونو با سشن بده و تا زمانی که کاربر صفحه رو نبسته یا دکمه logout رو نزده این دسترسی ها باطل نمی شه
مثلاً ما یه سشن داریم به این صورت

session["login"]="no";
این تو global.asax هست درست
حلا زمانی که یوزر ما login کرد و یوزر و پسوردش درست بود مامیگیم قرار بده

session["login"]="yes";
این تو صفحه login.aspx
خوب حلا یه صفحه داریم که تا کاربر login نکنه نمیتونه به اون دسترسی داشته باشه مثلاً panel.aspx
خوب ما میایم تو این صفحه تو زمان لود میگیم

البته امیدوارم منظورتو درست فهمیده باشم


if(session["login"].tostring=="no") response.redirect("login.aspx");
خوب یعنی مجوز ورود به کسی که login نکرده رو نمی دیم
این یه نوع سطح دسترسی هست.
البته زیاد بهینه نیست من یه مثال زدم
خوب بقیه سطح دسترسی ها هم همینه

البته امیدوارم منظورتو درست فهمیده باشم :متفکر:

اگر هم نفهمیدم مشکل از خنگی خودمه شما ببخشید:لبخند:

Hossein Bazyan
چهارشنبه 18 مهر 1386, 13:41 عصر
سلام
من راه بهتری بکار برده ام . هر کاربر علاوه بر نام کاربری و رمز یک فیلد بنام Access داره که حاوی یکسری اعداد 1و 0 هست . هرگاه لوگین نمود و رمز درست بود این فیلد خوانده شده و به منوها اعمال میشه . و نام کاربری و یکسری اطلاعات دیگر با استفاده از سکشن ها به صفحات میره و در صفحات هم خوانده میشه . مشکلی که هست اینه که اگر کاربر جدید وارد شد تمامی کاربرهای موجود به نام کاربری و سطح دسترسی این کاربر تغییر میکنند!!!!

abadanboy
چهارشنبه 18 مهر 1386, 13:50 عصر
حلا من هی اسرار می کنم بعد ناسزا بم نگی یا :لبخند:
خوب این همون کاریه که من می گم دیگه عزیزم به جای این که مقدار رو مستقیم به منو ها بدی بده به session و session رو بده به منو ها ردیف میشه البته به گمانم:متفکر:

Hossein Bazyan
چهارشنبه 18 مهر 1386, 14:20 عصر
حلا من هی اسرار می کنم بعد ناسزا بم نگی یا :لبخند:
خوب این همون کاریه که من می گم دیگه عزیزم به جای این که مقدار رو مستقیم به منو ها بدی بده به session و session رو بده به منو ها ردیف میشه البته به گمانم:متفکر:
سلام
دوست عزیز من اشاره کردم که در این قسمت مشکل ندارم . مشکل من در قسمت دوم است .