برگزیده های پرشین تولز

دستورات Logoutدر ASP

aref1364

Registered User
تاریخ عضویت
23 جولای 2005
نوشته‌ها
395
لایک‌ها
1
لطفا برنامه ای برای logout شدن بنویسید. البته تو سایتم هیچ session یا کوکی استفاده نکردم!
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
به نقل از aref1364 :
لطفا برنامه ای برای logout شدن بنویسید. البته تو سایتم هیچ session یا کوکی استفاده نکردم!
لوگ آت شدن اونهم بدون دونستن کد لاگین؟ مگه میشه؟
 

amironline

Registered User
تاریخ عضویت
25 نوامبر 2003
نوشته‌ها
671
لایک‌ها
0
محل سکونت
Tabriz
لوگ آت شدن اونهم بدون دونستن کد لاگین؟ مگه میشه؟
تاييد ميشه
خوب شما بايد توضيح بدين كه چه جوري لاگين ميكنين؟
تا بشه توضيح داد
 

aref1364

Registered User
تاریخ عضویت
23 جولای 2005
نوشته‌ها
395
لایک‌ها
1
به نقل از amironline :
تاييد ميشه
خوب شما بايد توضيح بدين كه چه جوري لاگين ميكنين؟
تا بشه توضيح داد

ارتباط با ÷ایگاه داده ام از طریق dsn هست. من از دستورای if و do while ساده برای ورود استفاده می کنم. در طول برنامه هیچ session وجود نداره...!!!
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
به نقل از aref1364 :
ارتباط با ÷ایگاه داده ام از طریق dsn هست. من از دستورای if و do while ساده برای ورود استفاده می کنم. در طول برنامه هیچ session وجود نداره...!!!
اینکه کافی نیست. خب شاید شما یکسری اطلاعات رو میریزید توی متغیر مثلا X خب من از کجا بدونم اسمش چیه که بهتون کمک کنم!؟
 

aref1364

Registered User
تاریخ عضویت
23 جولای 2005
نوشته‌ها
395
لایک‌ها
1
set recordset1=server.createobject("ADODB.Recordset")
recordset1.open sql1, conn1, 0, 1, adcmdtable

user1=request("username")
pass1=request("password")
found=false

do while not (recordset1.eof or found)
searchuser=recordset1("username")
if (searchuser=user1) then
pass2=recordset1("password")
if (pass2=pass1) then
found=true
end if
end if
recordset1.movenext
loop

if (found=true) then
.
.
.
.
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
به نقل از aref1364 :
set recordset1=server.createobject("ADODB.Recordset")
recordset1.open sql1, conn1, 0, 1, adcmdtable

user1=request("username")
pass1=request("password")
found=false

do while not (recordset1.eof or found)
searchuser=recordset1("username")
if (searchuser=user1) then
pass2=recordset1("password")
if (pass2=pass1) then
found=true
end if
end if
recordset1.movenext
loop

if (found=true) then
.
.
.
.
خب اینجوری که من میبینم اطلاعات یوزرهای لاگ شده میرن توی یک تیبل در دیتابیس. خب برای لاگ آوت کردن باید اون یوزر رو از اون تیبل حذف کنید:

کد:
DELETE FROM table_name WHERE (username='username_here' AND password='password_here');
 

aref1364

Registered User
تاریخ عضویت
23 جولای 2005
نوشته‌ها
395
لایک‌ها
1
به نقل از balabala :
خب اینجوری که من میبینم اطلاعات یوزرهای لاگ شده میرن توی یک تیبل در دیتابیس. خب برای لاگ آوت کردن باید اون یوزر رو از اون تیبل حذف کنید:

کد:
DELETE FROM table_name WHERE (username='username_here' AND password='password_here');

راستشو بخوای من فقط یک جدول دارم که توش چیز اضافی نمی بینم.
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
به نقل از aref1364 :
راستشو بخوای من فقط یک جدول دارم که توش چیز اضافی نمی بینم.
الان این متغیر sql1 دقیقا مقدارش چیه؟
بعد هم اینجور که من میبینم یک جایی برنامه حتما یوزرها رو توی جدول اد میکنه و در اینجا چک میکنه که آیا در جدول وجود داره یا نه اگر وجود داشته باشه میگه که لاگینه. خب اگر با یک کانکشن اون کوئری رو که گفتم اجرا کنید، و اسم و پسورد صحیح استفاده کنید قاعدتا باید کار کنه.
مگر اینکه من سورس رو اشتباه فهمیده باشم.
 

aref1364

Registered User
تاریخ عضویت
23 جولای 2005
نوشته‌ها
395
لایک‌ها
1
sql1="select username, password from Table1"

شما درست میگی اما اگه یوزر رو حذف کنم که دیگه کاربر دفعه ی قبل نمیتونه وارد بشه که.
ببین میشه فقط رکوردست و کانکشن به ÷ایگاه داده رو ببندم؟
این کافیه برای لاگ اوت شدن دیگه نه؟
 

aref1364

Registered User
تاریخ عضویت
23 جولای 2005
نوشته‌ها
395
لایک‌ها
1
اگه به سورس من نگاه کنی گیج میشی اینا رو من خودم عمدا اینجوری مینیویسم که اگه هک شد لا اقل بتونم یکم سرکارشون بذارم تا خودم ÷شت ÷رده کارای لازم رو انجام بدم.
دستورات من ساده اما تو در تو و با فرمت غیر صحیح (البته منظورم برای خوندن است) نوشته شدن.
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
به نقل از aref1364 :
sql1="select username, password from Table1"

شما درست میگی اما اگه یوزر رو حذف کنم که دیگه کاربر دفعه ی قبل نمیتونه وارد بشه که.
ببین میشه فقط رکوردست و کانکشن به ÷ایگاه داده رو ببندم؟
این کافیه برای لاگ اوت شدن دیگه نه؟
خب شما اگر دستی اینها رو وارد کردید باید یکجایی هم یه کد لاگین بگذارید که این کار رو بکنه:

کد:
INSERT INTO Table1 (username, password) VALUE ('username_here', 'password_here');

اینطوری نمیشه که کانکشن روقطع کرد.
 

aref1364

Registered User
تاریخ عضویت
23 جولای 2005
نوشته‌ها
395
لایک‌ها
1
به نقل از balabala :
خب شما اگر دستی اینها رو وارد کردید باید یکجایی هم یه کد لاگین بگذارید که این کار رو بکنه:

کد:
INSERT INTO Table1 (username, password) VALUE ('username_here', 'password_here');

اینطوری نمیشه که کانکشن روقطع کرد.

من مقادیر رو با sql وارد رکوردهای جدول نمی کنم. از همون دستورهای asp برای اینکار استفاده می کنم. آیا این میتونه مشکلی داشته باشه بعدا؟
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
به نقل از aref1364 :
من مقادیر رو با sql وارد رکوردهای جدول نمی کنم. از همون دستورهای asp برای اینکار استفاده می کنم. آیا این میتونه مشکلی داشته باشه بعدا؟
منظورتون فانکشنهای ADODB.Recordset مثل Add و Update هست؟
نه چرا مشکلی بوجود بیاد؟ تفاوتی نداره که این کار رو از چه راهی انجام بدید.
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
بینم اگه از session و کوکی استفاده نمیکنی ، از کجا میفهمی که این کاربر وقتی صفحه رو عوض کرد همونی اه که توی دیتا بیس اسمش رو نوشتی ؟؟؟؟
از کوری استرینگ استفاده میکنی ؟؟
 

aref1364

Registered User
تاریخ عضویت
23 جولای 2005
نوشته‌ها
395
لایک‌ها
1
به نقل از H_R :
بینم اگه از session و کوکی استفاده نمیکنی ، از کجا میفهمی که این کاربر وقتی صفحه رو عوض کرد همونی اه که توی دیتا بیس اسمش رو نوشتی ؟؟؟؟
از کوری استرینگ استفاده میکنی ؟؟

بله از querystring های مخفی استفاده می کنم!
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
به نقل از aref1364 :
بله از querystring های مخفی استفاده می کنم!

خوب چه کاریه ، بیا یه جوری کوری استرینگت رو رمز کن مثلا http://iranasp.net/Articles/ShowArticle.aspx?articleid=165 بعد فقط وقت لاگین شدن چک کن ببین یوزر نیم و پس ورد درست باشه بهد یوزر نیم رو با کوری استرینگ انکریپنت شده (رمز شده ) وقتی هم خواستی لاگ اوت کنه کوری استرینگ رو بردار اینطوری یخیل بهتره چون هی لازم نیست به دیتابیست وصل بشی !! (میدونی چقدر منابع مصرف میکنه ؟؟ )

در ضمن خوبه که یه زمان هم برای مدت لاگین بودن و معتبر بودن توی همون کوری استرینگت بذاری تا با توی حافظه اینترنت اکسپلورر آدرس کمسی که لایگن کرذده بوده نمونه

یه مثل خوب توی سایت codeproject هست بد نیست ببینیش

دست آخر روش کوکی و مخصوصا سیشن که انکریپت شدن هم در کار باشه ! برای ای اس پی 3 و برای دات نت هم روش authentication روش های قابل اعتمادی هستند !!!بخودی قضیه رو سختش نکن ;)
 

aref1364

Registered User
تاریخ عضویت
23 جولای 2005
نوشته‌ها
395
لایک‌ها
1
به نقل از H_R :
خوب چه کاریه ، بیا یه جوری کوری استرینگت رو رمز کن مثلا http://iranasp.net/Articles/ShowArticle.aspx?articleid=165 بعد فقط وقت لاگین شدن چک کن ببین یوزر نیم و پس ورد درست باشه بهد یوزر نیم رو با کوری استرینگ انکریپنت شده (رمز شده ) وقتی هم خواستی لاگ اوت کنه کوری استرینگ رو بردار اینطوری یخیل بهتره چون هی لازم نیست به دیتابیست وصل بشی !! (میدونی چقدر منابع مصرف میکنه ؟؟ )

در ضمن خوبه که یه زمان هم برای مدت لاگین بودن و معتبر بودن توی همون کوری استرینگت بذاری تا با توی حافظه اینترنت اکسپلورر آدرس کمسی که لایگن کرذده بوده نمونه

یه مثل خوب توی سایت codeproject هست بد نیست ببینیش

دست آخر روش کوکی و مخصوصا سیشن که انکریپت شدن هم در کار باشه ! برای ای اس پی 3 و برای دات نت هم روش authentication روش های قابل اعتمادی هستند !!!بخودی قضیه رو سختش نکن ;)

خیلی ممنون.
منم همون کار اولی رو کردم (querystring) و زمان هم گذاشتم. البته جلوی کش شدن رو گرفتم.
 

aref1364

Registered User
تاریخ عضویت
23 جولای 2005
نوشته‌ها
395
لایک‌ها
1
به نقل از mehdvirus :
مگه سیژن و کوکی چشونه؟؟؟؟؟؟

خوب دیگه! :D

من یه سوال دیگه دارم. میخوام کاری بکنم که کاربر وقتی روی back کلیک میکنه براوزرش بنویسه expired. من از response.expires استفاده می کنم اما جواب نمیده. باید از session استفاده کنم تا بتونم expire کنم اونو؟
منظورم اینه که نمیشه خود صفحه رو اکس÷ایر کرد؟
 
بالا