PDA

View Full Version : مشکل با کوکی



peymannaji
یک شنبه 27 اسفند 1385, 19:57 عصر
سلام مشکل کد من چی هست ؟



http://i19.tinypic.com/2qs5h0y.jpg

Behrouz_Rad
یک شنبه 27 اسفند 1385, 22:08 عصر
Path یک Property هست اما تو داری به شکل یک متد ازش استفاده می کنی!
در ضمن، تو نیازی به تعیین مسیر برای کوکی نداری....
خاصیت path تگ forms در Web.Config به طور پیش فرض برابر با / هست که نیازی به تغییرش نیست.

موفق باشید.

peymannaji
سه شنبه 29 اسفند 1385, 09:55 صبح
حالا اگه بخوام کوکی هام برن توی یک فولدر خاص چیکار باید کرد ؟
سوال بعدیم اینه که برای اینکه بخوام چک کنم آیا کوکی مورد نظر وجود داره یا نه توی شرط چی باید بنویسم ؟


با تشکر...

Alireza_Salehi
سه شنبه 29 اسفند 1385, 19:17 عصر
If Not Request.Cookies("نام کوکی") Is Nothing Then
...
End If

peymannaji
چهارشنبه 01 فروردین 1386, 15:21 عصر
ممنون دوست عزیز فقط یک سوال دیگه دارم و اینکه زمان انقضای یک کوکی رو چگونه باید تعیین کرد بفرض مثال میخوام طول عمر کوکی 10 دقیقه باشه ... ( من از ویژوال استادیو 2003 استفاده میکنم )

Alireza_Salehi
چهارشنبه 01 فروردین 1386, 19:29 عصر
کوکی خاصیتی به نام Expires داره که زمان رو به صورت DateTime میگیره . کافیه به اون مقدار دلخواه رو بدید.

peymannaji
چهارشنبه 01 فروردین 1386, 21:48 عصر
کوکی خاصیتی به نام Expire داره که زمان رو با واحد دقیقه میگیره . کافیه به اون مقدار دلخواه رو بدید.
اینو میدونم اما طریقه نوشتن کدش رو نمیدونم ... هرچی مینوسیم ارور میده میشه یک نمونش رو شما بنویسی ؟

Alireza_Salehi
پنج شنبه 02 فروردین 1386, 15:58 عصر
Dim c As new HttpCookie("MyCookie")
c.Value="MyValue"
c.Expires=Now.AddMinutes(10)
Response.Cookies.Add(c)

peymannaji
جمعه 03 فروردین 1386, 04:22 صبح
سلام دوست عزیز ...
1-در مورد کدی که دادین در خط 3 که مربوط به expire کردن کوکی هست به من ارور میده ...
2- من با کد زیر کوکی رو پاک میکنم :




Response.Cookies.Remove("login")

و وقتی با دستوری که گفتید چک میکنم که آیا کوکی وجود داره به من میگه کوکی پر هست



If Not Request.Cookies("نام کوکی") Is Nothing Then
...
End If
چیکار باید کرد ؟

Alireza_Salehi
جمعه 03 فروردین 1386, 09:24 صبح
کوکی رو این طوری حذف میکنند:

c.Expires=Now.AddDays(-1)

بعد باید دوباره اضافش کنی.

peymannaji
جمعه 03 فروردین 1386, 12:27 عصر
Dim c As new HttpCookie("MyCookie")
c.Value="MyValue"
c.Expire=10
Response.Cookies.Add(c)

سلام .
من همانطور که گفتم تو خط سوم به من ارور میده . و همینطور در قسمتی که به پاک کردن کوکی بود مشکل چی هست ؟

c.Expire=-10

Alireza_Salehi
جمعه 03 فروردین 1386, 17:04 عصر
ببخشید ! باید در خاصیت Expires (http://www.barnamenevis.org/forum/ms-help://MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref12/html/P_System_Web_HttpCookie_Expires.htm) یک مقدار DateTime قرار بدید مثلا برای 30 دقیقه میتونید از Now.Addminutes(30) استفاده کنید. و برای حذف کردن Now.AddDays(-1) رو استفاده کنید و کوکی رو دوباره اضافه کنید.

peymannaji
جمعه 03 فروردین 1386, 22:48 عصر
ممنو از لطفتون ...

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

و سوال بعدیم اینه که من یک قسمت logout برای سایتم میخوام بزارم که با کلیک کردن بروی اون باید کوکی از بین بره این قسمت رو اینطوری نوشتم :


Request.Cookies.Remove("MyCookie")


اما بعد از logout کردن پر بودن کوکی رو چک میکنم میگه کوکی وجود داره و پر هست برای این قسمت اگه محبت کنید یک راهنمایی کنید که چه کدی باید نوشت برای این قسمت بنده رفع زحمت میکنم ...

با سپاس فراوان ...

Alireza_Salehi
شنبه 04 فروردین 1386, 15:43 عصر
اون خاصیت path مسیر مجازی که کوکی به ائن مربوط میشه رو مشخص میکنه نه جایی که ذخیره میشه ، محل ذخیره سازی کوکی در کامپیوتر کاربر دست شما نیست ، مرورگر کاربر اون رو کنترل میکنه.

برای پاک کردن هم که گفتم (پست های قبلی رو بادقت بخون) باید یک کوکی با دقیقا همون نام بسازی ولی به Expires باید زمان گذشته (مقدار منفی) بدی و این کوکی رو دوباره به Response اضافه کنی.این طوری کوکی مورد نظر تاریخ گذشته میشه و اتوماتیک پاک میشه.

mahbod
شنبه 04 فروردین 1386, 21:57 عصر
سلام دوست عزیز :
این غابل رو دانلود کن همه مشکلاتت درمورد کوکی ها حل می شه بجز یکی ...!!!

mahbod
یک شنبه 05 فروردین 1386, 16:49 عصر
خواهش می کنم (peymannaji )
فقط مشکلی که من دارم اینه که وقتی طبق مقاله بالا عمل کردم همه صفحاتم رو تحت پوشش قرار میده و برای ورود به همه اونا باید لاگین شده باشم می خوام بدونم چطور می شه کاری کرد که اگه سایت مثلا 10 صفحه داره 6 تا از اونا نیاز به لاگین داشته باشند ولی 4 تای دیگه را همه بدون لاگین ببینن.
با تشکر

peymannaji
یک شنبه 05 فروردین 1386, 17:42 عصر
ببین در این تاپیک من هم دقیقا این موضوع رو دنبال کردم اما با این تفاوت که کاربر فقط یک بار لوگین میکنه و اطلاعاتش میره در یک کوکی ذخیره میشه و در هر صفحه نیاز داشته باشم باید مقداری که در کوکی ذخیره شده هست رو بگیرم ...

خواندن محتوای کوکی :



Request.Cookies("MyCookie").Value

mahbod
سه شنبه 14 فروردین 1386, 10:16 صبح
سلام

از جوابی که دادی ممنونم . ولی منظوره من این بود که :

مثلا می خواهیم هر کاربر که وارد سایت می شود ، صفحات x , y , z را ببیند . ولی برای دیدن صفحه w باید login شود .
ولی با این روش که از کوکی ها استفاده می کنم برای دیدن x,y,z هم ، کاربر را به صفحه login می فرستد . می خواهم بدانم چگونه می شود مشخص کرد که برای هر صفحه نیاز به login هست یا نه؟

با تشکر

Alireza_Salehi
سه شنبه 14 فروردین 1386, 10:26 صبح
سلام

از جوابی که دادی ممنونم . ولی منظوره من این بود که :

مثلا می خواهیم هر کاربر که وارد سایت می شود ، صفحات x , y , z را ببیند . ولی برای دیدن صفحه w باید login شود .
ولی با این روش که از کوکی ها استفاده می کنم برای دیدن x,y,z هم ، کاربر را به صفحه login می فرستد . می خواهم بدانم چگونه می شود مشخص کرد که برای هر صفحه نیاز به login هست یا نه؟

با تشکر
باید برای هر قسمتی از سایت که نیاز به login داره یک فولدر جدا درست کنی و صفحات رو توی اون بذاری.مثال های سایت www.asp.net (http://www.asp.net) رو ببین.

Behrouz_Rad
سه شنبه 14 فروردین 1386, 10:27 صبح
روال تاپیک رو از مسیر اصلی خودش خارج نکنید!
برای سوالت یک تاپیک جدا باید در نظر میگرفتی...
-------------------------------------------------------------

سلام

از جوابی که دادی ممنونم . ولی منظوره من این بود که :

مثلا می خواهیم هر کاربر که وارد سایت می شود ، صفحات x , y , z را ببیند . ولی برای دیدن صفحه w باید login شود .
ولی با این روش که از کوکی ها استفاده می کنم برای دیدن x,y,z هم ، کاربر را به صفحه login می فرستد . می خواهم بدانم چگونه می شود مشخص کرد که برای هر صفحه نیاز به login هست یا نه؟

با تشکر


باید برای هر قسمتی از سایت که نیاز به login داره یک فولدر جدا درست کنی و صفحات رو توی اون بذاری.مثال های سایت www.asp.net (http://www.asp.net) رو ببین.

نیازی به این کار نیست!
ایجاد پوشه های مختلف تنها برای دسته بندی فایل ها کاربرد داره نه چیز دیگری.


در فایل Web.Config

برای صفحه ای که نیاز به تصدیق هویت داره:


<location path="myPage.aspx">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>

برای صفحه ای که نیاز به تصدیق هویت نداره:


<location path="myPage.aspx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>

موفق باشید.

Alireza_Salehi
سه شنبه 14 فروردین 1386, 10:46 صبح
نیازی به این کار نیست!
ایجاد پوشه های مختلف تنها برای دسته بندی فایل ها کاربرد داره نه چیز دیگری.
.
خوب این طوری هم میشه ، به ازای هر فولدر هم یک Web.Config قرار میدیم و فقط Authorization رو ست میکنیم!

البته اون روشی که من گفتم هم با کد شما قابل انجامه.

Behrouz_Rad
سه شنبه 14 فروردین 1386, 10:50 صبح
خوب این طوری هم میشه ، به ازای هر فولدر هم یک Web.Config قرار میدیم و فقط Authorization رو ست میکنیم!

البته اون روشی که من گفتم هم با کد شما قابل انجامه.
تو روشت رو کامل توضیح ندادی!
در ضمن، نیازی نیست که برای هر پوشه یک فایل Web.Config جدا ایجاد کنی.

Alireza_Salehi
سه شنبه 14 فروردین 1386, 11:35 صبح
101Samples
منظورم به این روشه (بدون استفاده از تگ location):

Behrouz_Rad
سه شنبه 14 فروردین 1386, 11:56 صبح
برادر من!
این هم همون تگ Location هست (به سینتکسش دقت کن) اما زمانی که برای پوشه های فرزند فایل Web.Config ایجاد می کنی، دیگه نیازی به ذکر "نام" این تگ نداری!
تگ Location برای ایجاد پیکربندی متفاوت برای زیر مجموعه های یک Web App استفاده میشه.
این معقول نیست که اگر فرضا 10 پوشه داشتی با سطوح دسترسی مختلف، برای هر کدوم یک فایل Web.Config جدا ایجاد کنی چرا که در صورت نیاز برای تغییر این سطوح، باید 10 فایل رو ویرایش کنی.
چه بهتر که تمامی سطوح در یک فایل تعریف بشن تا هر چه سریعتر به خواسته هات برسی!

موفق باشید.

Alireza_Salehi
سه شنبه 14 فروردین 1386, 13:06 عصر
وقتی پست 19 رو گذاشتم از وجود location باخبر بودم!
در واقع در اکثر کتابها و مثالهای موجود این طوری آموزش دادن !

تگ location بهتره ولی فقط گفتم این طوری هم میشه، نه این که حتما باید این طوری بشه!

در ضمن مگر چند بار در طول عمر یک وب سایت قرار ساختار امنیتش دگرگون بشه !

هر چند به نظر خود من هم location جالب تره!

Behrouz_Rad
سه شنبه 14 فروردین 1386, 13:21 عصر
در واقع در اکثر کتابها و مثالهای موجود این طوری آموزش دادن !
هیچ وقت فوت چیزی رو به طور کامل بهت نمیگن! این بستگی به تجربه و تبحر تو داره که با استفاده از معلومات موجود، معلومات ناموجود رو استخراج کنی!


در ضمن مگر چند بار در طول عمر یک وب سایت قرار ساختار امنیتش دگرگون بشه !
این موضوع شاید برای کارهای آب دهنی مهم نباشه اما به عنوان یک مثال می تونی ببینی که فرضا در CMS های معروفی که نیاز به یک Super Administrator هست، در روال Application_Start وجود یک Role مدیر کل بررسی میشه و در صورتی که وجود نداشت، یک Role پیش فرض ایجاد می کنن!
پس آیا باید پرسید که روال Application_Start چند بار اجرا میشه؟

موفق باشید.

Alireza_Salehi
سه شنبه 14 فروردین 1386, 13:24 عصر
هیچ وقت فوت چیزی رو به طور کامل بهت نمیگن! این بستگی به تجربه و تبحر تو داره که با استفاده از معلومات موجود، معلومات ناموجود رو استخراج کنی!
موفق باشید.

البته بعضی چیزا زیاد هم فوت نیستن ، فقط روشی دیگر برای رسیدن به مقصد هستند.با این حال در مورد فوت هایی که واقعا فوت هستند حق با شماست.


شما هم موفق باشید.