View Full Version : سوال: روش درست استفاده از Cookie ها در کنترل Login
mehdi99
پنج شنبه 03 دی 1388, 07:14 صبح
سلام.
من می خواستم هنگامی که User ها در سایت با استفاده کنترل Login وارد می شوند ، نام کاربری آنها را در Cookie در طرف Client ذخیره کنم
آیا با استفاده از کنترل Login می توان یک Cookie برای کاربر را ذخیره کرد؟
یعنی خود کنترل Login قسمتی برای Cookie داره که به برای یک مدت طولانی ذخیره شود؟
لطفا روش درست این کار چطور است.
A.S.Roma
پنج شنبه 03 دی 1388, 07:32 صبح
مدت طولانی یعنی چقدر !؟
در حالت عادی اگر از سیستمMembership خود دات نت استفاده کنید در هر Page به نام کاربری و ... دسترسی خواهید داشت.
Page.User.Identity.Name
اگر خاصیت Remember Me کنترل Login هم فعال کنید برای مدت طولانی تر یوزر Login می شود.
فکر نمی کنم نیازی به ساختن Cookie دستی باشه چون سیستم MemberShip خود دات نت این کار را انجام میدهد.
mehdi99
پنج شنبه 03 دی 1388, 07:40 صبح
بله با استفاده از همون Membership مثلا به مدت 1 سال اگه بتونین یک نمونه کد بزارید ممنون میشم
که بار هر بار وارد شدن کاربر دیگر احتیاج به Login کردن نداشته باشه
z_bluestar
پنج شنبه 03 دی 1388, 08:05 صبح
به این تاپیک یه نگاه بنداز , نمونه کد هم داره :چشمک:
http://barnamenevis.org/forum/showthread.php?t=194773
mehdi99
پنج شنبه 03 دی 1388, 08:35 صبح
با سلام z_bluestar (http://barnamenevis.org/forum/member.php?u=24515)
ممنون از توضیحات
ولی توی لینکی که دادین فقط یک جدال بر سر اینکه کی درست می گه همین چیزی پیدا نکردم
اگه لطف کنید یک نمونه کد برای Login همراه با Cookie باشه ممنون می شوم
z_bluestar
پنج شنبه 03 دی 1388, 08:53 صبح
اینم روش Login با استفاده از کلاس FormAuthentication
if (Page.IsValid)
{
FormsAuthentication.SetAuthCookie(txtUsername.Text , false);
}
این تنظیمات رو هم تو Web.Config احتیاج داره
<authentication mode="Forms">
<forms name=".authenticationDay" loginUrl="~/MyPU/Login.aspx" timeout="60" defaultUrl="~/MyPU/Default.aspx" >
</forms>
</authentication>
اگه تاپیکی رو که لینکشو براتون گذاشتم بخونید توضیحات کامل این کد هــا در آن اومده.
z_bluestar
پنج شنبه 03 دی 1388, 09:02 صبح
تو این تاپیک هم در مورد این کد ها توضیح کـامل داده شده است .
http://barnamenevis.org/forum/showthread.php?t=178065 (http://barnamenevis.org/forum/showthread.php?t=178065)
DelphiAssistant
پنج شنبه 03 دی 1388, 09:05 صبح
اینجا را نیز ببینید:
گزينه "مرا به خاطر بسپار" درست كار نميكند (http://vahidnasiri.blogspot.com/2009/09/blog-post_08.html)
Behrouz_Rad
پنج شنبه 03 دی 1388, 11:05 صبح
بحث انقضای کوکی تصدیق هویت در ASP.NET کمی عجیب هست. من قبلاً با این مشکل برخورد داشتم و وقت زیادی رو برای پیدا کردن ریشه ی مشکل صرف کردم.
افراد زیادی در فروم های مختلف هم با این مشکل سر و کار دارند. به نظر میرسه که باگی در ASP.NET وجود داره که باعث عدم برخورد صحیح با کوکی های تصدیق هویت میشه.
کوکی بر روی سیستم قرار می گیره. زمان انقضای اون هم به درستی مثلاً به 1 سال آینده تنظیم میشه؛ در هر درخواست هم کوکی تصدیق هویت به سرور ارسال میشه اما مشخص نیست چه اتفاقی میفته که ASP.NET نمی تونه اون کوکی رو بعد از سپری شدن مقداری از زمان (که متغیر هم هست) بشناسه و کاربر رو مجدداً به صفحه ی لوگین هدایت می کنه.
من با Fiddler هم تمامی Packetها و Headerها رو بررسی کردم اما مشکلی رو ندیدم. در نسخه ای از فروم YAF هم این مشکل رو دیدم. به نظر میرسه که مشکل از سرور باشه. چون روی یک سرور مشکلی وجود نداره اما روی سرور دیگه این مشکل هست.
در نهایت به عنوان یک راه حل موقت بدین شکل عمل کردم که کوکی رو در Request می گیرم و مجدداً کوکی جدیدی ایجاد و با Response به کلاینت پاس میدم.
موفق باشید.
vBulletin® v4.0.8, Copyright ©2000-1391, Jelsoft Enterprises Ltd.