PDA

View Full Version : سوال: در مورد كدهاي تعيين سطح دسترسي كاربران با استفاده از session



ardalanjoon
شنبه 05 شهریور 1390, 17:18 عصر
من تو سايتم كاربرانم كه عضو ميشن 2تا نقش مدير و كاربر دارن. ديتا بيس و لاگين و ثبت نام رو هم خودم با كدنويسي انجام دادم. حالا واسه تعيين سطح دسترسي چون توي ديتابيس نقشهاي مدير و كاربر هست؛ وقتي مدير يا كاربر لاگين ميكنه، توي دكمه ي لاگين با session سطح دسترسيشون قابل كنترل هست. اما واسه كاربران مهمان چون لاگين نميكنن، نميتونم كنترل كنم كه به هرجا خواستن نرن. از رويداد is post back هم استفاده كردم كه اگه نال بود، يعني صفحه سايت واسه بار اوله كه لود شده پس كاربر مهمان است. اما جواب نداد و بعد از زدن دكمه ؛ باز هم نال ميمونه. كمك كنيد لطفا :اشتباه:

mehran_sh_t
شنبه 05 شهریور 1390, 18:38 عصر
برای چک کردن مدیر یا کاربر، کجا session رو چک می کنی؟ توی Page_load؟
فرض کن اگر اینجاست (یا هر جای دیگه) می تونی چک کنی که اگر کلا session وجود نداشت، سطح دسترسی بهش ندی.

ardalanjoon
شنبه 05 شهریور 1390, 23:24 عصر
مرسي دوست عزيز. من وقتي كاربر (چه مدير چه كاربر) لاگين ميكنه، با زدن دكمه لاگين، session مقدار ميگيره (با توجه به database) . بعد مثلا در page load صفحه اي ديگر، چك ميشه كه اگه مقدار session فلان بود بره به فلان صفحه. اما كاربر مهمان چون با لاگين كار نداره، sessionاي واسش مقداردهي نميشه. حالا اين چيزي كه گفتي رو با توجه به توضيحاتم بايد توي page load چه طور چك كنم؟ مثلا if session [user] =null اينطوري؟؟ بعد چون واسه مهمان هيچ sessionاي مقدار نگرفته ،اين كد رو قبول ميكنه؟

ardalanjoon
شنبه 05 شهریور 1390, 23:25 عصر
برای چک کردن مدیر یا کاربر، کجا session رو چک می کنی؟ توی Page_load؟
فرض کن اگر اینجاست (یا هر جای دیگه) می تونی چک کنی که اگر کلا session وجود نداشت، سطح دسترسی بهش ندی.

مرسي دوست عزيز. من وقتي كاربر (چه مدير چه كاربر) لاگين ميكنه، با زدن دكمه لاگين، session مقدار ميگيره (با توجه به database) . بعد مثلا در page load صفحه اي ديگر، چك ميشه كه اگه مقدار session فلان بود بره به فلان صفحه. اما كاربر مهمان چون با لاگين كار نداره، sessionاي واسش مقداردهي نميشه. حالا اين چيزي كه گفتي رو با توجه به توضيحاتم بايد توي page load چه طور چك كنم؟ مثلا if session [user] =null اينطوري؟؟ بعد چون واسه مهمان هيچ sessionاي مقدار نگرفته ،اين كد رو قبول ميكنه؟

dontspeak
شنبه 05 شهریور 1390, 23:53 عصر
استفده از این روش به سرور فشار میاره و امنیت کافی رو نداره بهتون پیشنهاد میکنم از کنترلهای لاگین asp و role های اون استفاده کنید. اگه در این مورد اطلاعاتی ندارید می تونید بطور کامل توی فیلم آموزشی زیر اطلاعات لازم رو بدست بیارید
http://www.learningweb.ir/showthread.php?91-%D9%88%DB%8C%D8%AF%D8%A6%D9%88%DB%8C-%D8%A2%D9%85%D9%88%D8%B2%D8%B4%DB%8C-membership

ardalanjoon
چهارشنبه 09 شهریور 1390, 18:25 عصر
من به خاطر شرايطم نميتونم از كنترلهاي لاگين خودش استفاده كنم. لطفا يكي بگه كه من session رو واسه كاربراي مهمانم كه عمل لاگين انجام نميدن، كجا مقدار بدم؟ واسه user , admin تو دكمه ي لاگين سشن رو مقدار ميدم و تو page load صفحه اي كه نبايد برن ، چكشون ميكنم. اما مهمان رو نميدونم چه طور چك كنم؟ اون روشم كه اگر كلا سشن وجود نداشت ، سطح دسترسي ندم رو امتحان كردم بي فايده بود. :(

hjran abdpor
چهارشنبه 09 شهریور 1390, 18:44 عصر
با سلام دوست عزیز.
راه حل زیادی برای اینکار وجود دارد.
مثلا : موقعی که تو فرم لود چک میکنی ایا واسه سشن ها admin و user مقداری نیست پس حتما کاربر مهمان است به همین راحتی . تو فرم لود یک Swith یا ifelse بزار .

milade
چهارشنبه 09 شهریور 1390, 23:46 عصر
دوستان ،
مستحضر باشید وقتی از ممبرشیپ استفاده میکنید ، ممبرشیپ کار خارق العاده ای انجام نمیده .
اون هم دقیقاً واستون سشن ایجاد میکنه و ...
و اگر همون ممبرشیپ هم بد استفاده کنید ( در حقیقت غیر مهندسی ) ، اون هم مشکل ساز میشه .
پس اینکه ما کاری رو با ممبر شیپ نکنیم دلیل نمیشه اینکه مشکلی داشته باشه . اتفاقاً قدرت مانورمون هم بالاتر میره .

در مورد استارتر عزیز :
شما میتونید یک سشن به نام Role در Session_Start تعریف کنید .مقدار پیش فرض اون Guest باشه .
حالا هر کاربری لاگین زد بشته به Roleش اون رو تغییر بدید .

ضمناً کلیه دوستان عنایت بفرمایید که Load در چرخه صفحات اولین نیست . مثالاً DataBinding خیلی پیش تر اتفاق میافته . پس اگر میبینید یک جا دارید یک سری پردازش های اساسی انجام میدید میتونید چک کردن رو قبل از Load انجام بدید که به طبع دردسرش واستون بیشتر میشه . مثل Application_AcquireRequestState .

در آخر ، سرچ چیز خیلی خوبیه ;) .

موفق باشید .

ardalanjoon
پنج شنبه 10 شهریور 1390, 20:58 عصر
واقها چيزيو كه ميخواستم گفتي خيلي خيلي ممنون (: