我的Cookie为什么会这样?
在一个项目中,我用如下的代码设置Cookie:
DateTime ExpTime=DateTime.Now.AddHours(1);//1小时后过期
HttpCookie MyCookieName = new HttpCookie("UName");
HttpCookie MyCookiePass = new HttpCookie("Pass");
MyCookieName.Value = UserName.Text;
MyCookieName.Expires =ExpTime;
MyCookiePass.Value =FormsAuthentication.HashPasswordForStoringInConfigFile(PassData.Text,"md5");
MyCookiePass.Expires =ExpTime;
Response.Cookies.Add(MyCookieName);
Response.Cookies.Add(MyCookiePass);
另外,我的会话设置如下:
<!-- 会话状态设置
默认情况下,ASP.NET 使用 cookie 标识哪些请求属于特定的会话。
如果 cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。
若要禁用 cookie,请设置 sessionState cookieless="true"。
-->
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;user id=sa;password="
cookieless="false"
timeout="20"
/>
IE中对于Cookies的设置为默认的设置(就算改为全部允许Cookie的最低安全级别,也是如此).
这好像没有什么总是,但Cookie却不能正常使用.
调试并运行工程,检查IE临时文件夹中的Cookie文件发现Cookie文件已经保存表客户端,但内容如下:
UName
pppxxxtt
127.0.0.1/
1536
2529067008
29824152
1864315392
29823323
*
Pass
E7DB4BE37079FBE058605D61DF9AFBC8
127.0.0.1/
1536
2529067008
29824152
1864615392
29823323
*
也就是说,Cookie文件中并没有过期时间信息,读取Expires信息,发现过期时间为永不过期:0001-1-1 0:00:00 .为什么会这样?为什么过期时间不被保存到客户端呢?
更重要的是,如果网站再次读取了Cookie文件,Cookie文件即被删除.为什么会这样呢?是不是没有过期信息的Cookie文件,在读取后都会被删除的?以前没有遇到过这种情况.
怎么回事呢?