یک بانک اطلاعاتی که دارای یک جدول به نام Users داریم
میخواستم وقتی User لاگین کرد اون رو لاگین نگه دارم -
نمیخوام از Session و کوکی استفاده کنم
پروژه هم با ASPNET MVC 2 هست و نمی خوام از Authentication اون استفاده کنم
چه روشی رو پیشنهاد میکنید ؟
یک بانک اطلاعاتی که دارای یک جدول به نام Users داریم
میخواستم وقتی User لاگین کرد اون رو لاگین نگه دارم -
نمیخوام از Session و کوکی استفاده کنم
پروژه هم با ASPNET MVC 2 هست و نمی خوام از Authentication اون استفاده کنم
چه روشی رو پیشنهاد میکنید ؟
پس چی کار می خواید بکنید؟میخواستم وقتی User لاگین کرد اون رو لاگین نگه دارم -
نمیخوام از Session و کوکی استفاده کنم
بهترین راه استفاده از session هست که شما نمی خاهید استفاده کنید.فکر نمیکنم راه حلی جز موارد ذکر شده توسط شما وجود داشته باشه.
تائید میشه: بهترین راه استفاده از Session هاس.
آخرین ویرایش به وسیله h.jaza : شنبه 19 دی 1388 در 23:42 عصر دلیل: . نه ؟
من یک پروژه دانشجویی نوشتم که از session استفاده نکردم و برای ذخیره مشخصات کاربر در معماری لایه ای در لایه Logic مشخصات رو در فیلدهای کلاس ذخیره کردم.البته نمیدونم وقتی یکی دیگه login کرد یک instance جدید از برنامه اجرا میشه یا نه که اگه جواب نه باشه روش بالا برای login همزمان چند نفر عملی نیست. و اگه instance جدید ایجاد بشه یعنی اینکه برای هر کاربر یک برنامه اجرا میشه و داخل هر برنامه مشخصات کاربر قرار داره
این تفکر ویندوزی هست و کاملا توی دنیای وب مشکل داره و اشتباه هستش و همون طوری که خودتم حدس زدی با ورود شخص ثالثی اطلاعات می پره و تغییر می کنه...
در تایید حرفای دوستان باید بگم که بهترین راه استفاده از session هست و به نظر من اگه راه دیگه ای باشه بازم حول session ها میگرده
گوگل از چه روشی استفاده میکنه ؟
از session نیست
از کوکی هم که استفاده نمیکنه - چون تنها کوکی که میسازه به نام remember و مقدار true
چیکار میکنه ؟
session & cookie دو روی یک سکه هستند.
http پروتکلی connectionless هست و معنی اون اینه که بدون استفاده از راهکارهای خاص نمیشه اعمال کاربران سایت رو به هم مربوط کرد. یکی از این راهکارها که معمول ترینشون هم هست کوکیه.
یه راه حل هست که دات نت هم ساپورت می کنه و استفاده از session key در URL هست و برای کاربرانی که کوکی رو غیر فعال کردن مناسبه
این سوال شما مثه این میمونه که من بگم میخوام برم ایمیلمو چک کنم ولی نمیخوام از اینترنت استفاده کنم! نتیجش این میشه که من نخواهم توانست ایمیلمو چک کنم!
موفق باشید.
دوستان حق با ایشونه سشن بسیار نا امن هست
Session نا امنه؟؟؟دوستان حق با ایشونه سشن بسیار نا امن هست
نمی دونم چرا دوستان همه چیز رو درغالب خاصی می گنجونن
خب این دوستمون می تونن استاندارد ها و پروتکل های وب رو تغییر بده و با ساخت روش جدیدی
خدمتی هم به جامعه برنامه نویسان کرده باشن ولی
دوست عزیز چرا از Authorizingاستفاده نمی کنی چون هم امنه هم قابلیت های فراوانی داره ؟؟/
دلیلش رو بگو شاید دوستان کمکت کردن
مدیریت حالت در پروتکل HTTP کلا از دو راه امکان پذیره URL , Cookie ....
شما هر روشی اختراع کنید در نهایت متکی به یکی از این دو خواهد بود.
حتی Session هم در نهایت برای ردیابی کاربران متکی به یکی از این دو است.
این همه وب سایت از همین روش برای امنیت استفاده می کنند، مشکلی هم ندارند. امنیت یک وب سایت توسط روشهای معمول انجام میشه و این روشها در سطوح مختلف و با ابزارهای مختلف امن می شوند.
دنبال اختراع مجدد چرخ نباشید.
توروخدا این جمله رو که فقط مخصوص ایرانی هاست بکار نبرید . حداقل در این سایتدنبال اختراع مجدد چرخ نباشید
به خدا این جمله فقط برای آدم های تنبلی هست که می خوان یه چیز آماده داشته باشن بدون اینکه بدونن اون از کجا اومده و چطور کار می کنه ، واقعا فکر کردید که چرا برنامه نویسی در ایران اینقدر ضعیف است ؟
البته بگم در وب بغیر از cookie و url چیز دیگه ای وجود نداره اما این دلیلی نمی شه که ما هم نتونیم بشینیم فکری بکنیم که شاید دنیا رو تحت وب متحول بکنیم
بهتره بجای اینکه بشینیم تا چرخ ها اختراع بشه بعد ما ازش استفاده کنیم خودمونم آستینا رو بالا بزنیم و چندتا چرخ هم خودمون اختراع کنیم
با بچه باحال موافقم من قبلا یه نمونه فوق حرفه ای رو دیدم که بازم از همین روش های موجود
ولی به صورت خیلی حرفه ای استفاده می کنه که توی Yaf forum بکار گرفته شده شاید کمکت کنه
گل پسر ، وقتی پروتکل یک چیزی رو ساپورت نمیکنه ،هر روشی شما به کار ببری یه جوری به این دوتا وابسته هست، حالا از دیتابیس، آی پی و هر ترکیب دیگه ای هم استفاده کنی.
روشهای مختلفی برای امن کردن سایت استفاده میشه، که پایه همه اونها تقریبا یکسانه. Forms Authentication روش معتبر و رایجی هست،
حالا شما فکر کنم ما بیسوادیم، برو خودت از اول راهی که ما رفتیم رو برو ببینم به کجا میرسی، تا یکسال آینده منتظر دیدن شیوه نوین شما هستم.
شما یک روش برای ردیابی کاربر، به جز موارد فوق به ما نشون بده....
پایه ثابته صرفا شاخ و برگها و جزئیاتش رو زیاد می کنند.
وقتی شما می گین پرتکل ساپورت نمی کنه یعنی ما هیچ فکر دیگه ای در مورد هیچ راه حل دیگه ای نکنیم یا حتی پیشنهادی رو هم ندهیم؟
بنده هم در مورد Authentication گفتم که فعلا راه حلی بغیر از راه حل هایی که در پست قبلی گفتم وجود نداره که تکنولوژی های جدید مانند Session هم در نهایت Cookie هستند نیست اما منظور من جلمه ای هست که فقط ما ها بدون اینکه حتی یک بار هم بهش فکر کنیم برای هم تکرار می کنیم
(( چرخ را دوباره اختراع نکنین))
چرا اختراع نکنیم
چرا نشینیم پرتکل ها و MetaData هایی که آمریکایی ها و یا کشور های دیگه دارند رو برای یک بار هم که شده برای خودمون بازنویسی کنیم
به نظر شما این درست هست که هر ساله بشینیم ببینیم مایکروسافت چه کار می کنه یا فلان شرکت دیگه چه راه حلی داره ؟
چرا ما راه حل ندیم؟
کسانی که وب رو راه انداختن واقعا پیش بینی تا قیامت رو برای شبکه و وب کردند ؟
واقعا تنها راه دسترسی به اطلاعات فقط از طریق وب کنونی امکان پذیره ؟
اینها سوالاتی هست که حداقل ما از خودمان باید بپرسیم تا به راه حل برسیم ، اما ما فقط می شینیم ببینیم کی چکار می کنه تا ما از اون فقط استفاده کنیم اونم نه استفاده صحیح چون حتی ما اون چرخ ساخته شده رو هم حتی یک بار درست طرز استفاده اون رو یاد نگرفتیم.
هر کاری مرحله به مرحله اتفاق می افتد، باید دید آیا یک روش نیاز ها را برطرف می کند یا خیر، و همیشه یک محقق و مخترع عاقل نگاهی به راهی که از گذشته تا حال رفته شده می اندازد، ضرر و فایده هر روش را ارائه بررسی می کند و سپس راهکار جدید ارائه می کند،
کسی جلوی فکر کردن شما را نمی گیرد، ابتدا بهتر است نگاهی به استاندارد های W3C بیاندازید ببینید قبل از شما هم کسی این مشکل را داشته است یا نه، و پاسخش چه بوده است؟
کسی جلوی فکر کردن شما را نمی گیرد ، ولی باید دید آیا این که پروتکل چیزی را ساپورت نمی کند صرفا محدودیت است یا دلیل دیگری هم داشته است.
به هر حال هر روز امکانات جدید تری در حال افزوده شدن به بستر وب هستند و توقف هم نمی کنند.
ببینین من با کلمه چرخ رو دوباره اختراع کردن مشکل دارم
شما الان دارین حرف های من رو می زنین اما دلیلی نداره که به بقیه بقبولونیم که اونور دنیا هرکی هرچی ساخته وحی منزله پس نباید چرخ رو دوباره اختراع کرد
خوب زمانی که شما می گین آقای فلانی چرخ رو دوباره اختراع نکن همین شما هستین که جلوی فکر کردن بقیه رو می گیرینکسی جلوی فکر کردن شما را نمی گیرد
اگر امکان داره چند نمونه از چرخ هایی که ایرانی ها در برنامه نویسی و وببه صورت ساختاری ارائه دادند رو برای من مثال بزنین؟
چرا زمانی که نمی تونین خودتون چرخی رو اختراع کنین به بقیه هم توصیه می کنین اختراع نکنن
ازتون خواهش می کنم یک بار هم که شده به هم توصیه این رو بکنیم که بیایم ایرانی ها رو در ساخت زیر ساخت های شبکه و یا نرم افزار و یا سخت افزار با تجربه گرفتن از تکنولوژی های موجود فراخوانی کنیم نه اینکه صرفا مصرف کننده باشیم
بعضی وقتا از اینکه هندی ها اینقدر توی نرم افزار پیشرفت کردن متعجب می شم !!!!ازتون خواهش می کنم یک بار هم که شده به هم توصیه این رو بکنیم که بیایم ایرانی ها رو در ساخت زیر ساخت های شبکه و یا نرم افزار و یا سخت افزار با تجربه گرفتن از تکنولوژی های موجود فراخوانی کنیم نه اینکه صرفا مصرف کننده باشیم
شاید اونا علاقه عجیبی به اختراع دوباره چرخ دارن هان؟؟؟
یک راه حل به ذهنم میرسه تمام صفحات سایتتو روی یک صفحه درست کنی به وسیله آجاکس
آجاکسی هم که استفاده میکنی به صورت دستی بنویسی نه از کنترل های ماکروسافت
هر کاربری یک لوگین انجام میده
اون نام کاربریشو رو بر حسب زمان سرور و یک کلید رمز که هر ساعت یک بار عوض میشه رمزنگاری کن (برای امنیت بالا)
و بعد از لوگین در داخل مثلا یک متغیر جاوا اسکریپت مرورگر کاربر ذخیره کن
حالا کاربر بعد از لوگین درخواستهایی به سرور میفرسته که به وسیله آجاکس محتویات متغیر جاوایی که ذخیره کردیرو برای سرور بفرست رمز نگاریرو رو باز کن بعدشم در خواستو جواب بده
یک مزایایی داره یک معایبی
که فکر کنم معایبش از مزایایش بیشتره پس همون Session استفاده کنی بهتره
این کاری هم که گفتم همون استفاده از url که دوستان اشاره کردن
موفق باشی
کسی میتونه یک نمونه کد احراز هویت با سیشن بزاره؟
اصلا بحث سر این چیزها نیست،
شما به جای بحث فنی رفتی سر فلسفه.
شما اول باید بگی آقا من یک سایتی دارم در محیط x - این محیط n تا تحدید براش وجود داره، حالا m تا راه حل (قبل از من بقیه به فکرشون رسیده ونیاز داشتن) برای رفع تهدید هم درست شده.
سوال آیا m تا راه حل n تا مشکل من رو حل میکنه؟
جواب اول: اگر حل میکنه که دیگه بحثی نیست. کار تمومه.
جواب دوم: نه، چند تا از تحدید ها رو نمیتونه رفع کنه: پس باید راه جدیدی اضافه کرد.
همه روش های اختراع شده بر اساس نیازی بوده اند نه این که همین طور یه عده بیکار بی دلیل روش اختراع کنند.
از نوع سوالتون مشخصه، به نظرم شما تسلط به روش های موجود ندارید. الان باید دنبال یادگیری باشید نه اختراع....
موفق باشید
کسی میتونه یک نمونه کد احراز هویت با سیشن بزاره؟
مطمئن باش فقط با Session ميشه، با Cookie مسخره است واسه Login استفاده كني. از كوكي واسه نگه داشتن نام Client مورد نظر يا تاريخ و از اينجور چيزا استفاده مي شه، چون اگه طرف تنظيم مرورگرش كوكي را بسته باشه ديگه، واقعا خسته نباشين. واسه همين از Session استفاده كن. Session فوق العاده قدرتمند و سريع ، حتما كارايي اونو نمي دوني.
موفق باشي
دوستان توجه کنید اگر کاربران سطح دسترسی و نقش هایی رو داشته باشند که صفحات براساس آنها به کاربر نمایش داده شود آن وقت نگه داشتن نقش کاربران در سشن بسیار بسیار خطرناک است
سلام
بنظرم خوبه که ی جدول تو دیتابیس داشته باشیم و هر کس که لاگین شد تو یکی از فیلدهاش ایز لاگین را ترو کنیم
بعد از طریق واکشی اطلاعات توی ی دیتاست از اطلاعات استفاده کنیم
میتونیم فیلدهاش را زیاد کنیم مثلا سطح دسترسی و غیره