PDA

View Full Version : چرا Url با استفاده از Session عوض مي شه ؟



احمد سامعی
شنبه 21 شهریور 1388, 10:44 صبح
سلام

من يك برنامه لوكال دارم كه براي ورود كاربر از Session استفاده كردم.
اما Url عجيب غريبي نشون مي ده مثل زير:

http://localhost:1039/(S(01gdlq55cwlhnw2i0kjuks2x))/Default.aspx
به نوشته قرمز در بالا توجه كنيد، اين از كجا مي آيد ؟
در صورتي كه بايد چيزي شبيه اين باشه ؟(اصولاً)

http://localhost:1039/Default.aspx
تنضيمات Web.Config اينجوري نوشتم (اگر اين قسمت از فايل مزبور حذف كنم Session عمل نمي كنه

<system.web>
<sessionState
cookieless="true" timeout="15"
regenerateExpiredSessionId="true"/>
</system.web>
با اين دستور Session ايجاد مي كنم:

Session.Add("ID", id);
با اين هم مي خونم:

if (!IsPostBack)
{ if (Session["ID"] == null)Response.Redirect("Login.aspx"); }

در ضمن از Global هم استفاده نكردم. مشكل از چي مي تونه باشه ؟

(و اينكه من تازه دارم استفاده از Session ياد مي گيرم.)

behnam-s
شنبه 21 شهریور 1388, 13:54 عصر
سلام
باید در web.config و cookieless="false قرار بدین تادرست شه. البته بعد از این تغییر ، باید پروژه رو کامل ببندید و دوباره باز کنید تا درست شه.

احمد سامعی
دوشنبه 23 شهریور 1388, 23:19 عصر
cookieless="false
1. اين كد چي كار مي كنه ؟
مي شه يكم توضيح بدين !

2. و چرا پروژه بايد بسته بسته بشه ؟

behnam-s
سه شنبه 24 شهریور 1388, 00:19 صبح
ببینید مقدار session بطور پیش فرض در کوکی ذخیره میشه ولی وقتی در web.config می نویسید cookieless=true از IIS می خوای که از cookie استفاده نکنه و مقدار رو در address ذخیره کنه که این روش برای مرورگر هایی که از cookie پشتیبانی نمی کنن خوبه.

و چرا پروژه بايد بسته بسته بشه ؟
برای اینکه این تنظیمات اعمال بشه باید web sever مربوط به visual studio ، بسته و دوباره اجرا بشه