| 订阅 | 在线投稿
分享
 
 
 

开发Web应用程序中Cookie使用的问题

来源:互联网网民  宽屏版  评论
2008-06-01 01:15:08

问:我想在一个Actionitem中增加cookie,然后sendredirect到另一个actionitem在那里验证cookie,有cookie这显示一个页面,否则返回。但我发现增加完cookie后,假如马上sendredirect则另一个actionitem取不到cookie值(说明cookie增加不成功),若不马上sendredirect而是response.content:='某一页面内容',然后用户点击连结到另一ActionItem则可以成功读出cookie。

答:Cookie是一个Response的头(header)部分,必须在正文之前设置。假如用SendRedirect,只有新页面才会传送,SendRedirect之前设置的Response会取消,导致Cookie不能加到新页面的头部分,所以设置Cookie不成功!解决办法是:永远不要在设置Cookie后再用SendRedirect。你所说的问题可以这样解决:在Html中可以加入代码自动转到另外一个页面,我们可以在WebActionItem的OnAction事件中写入:

Response.Content:='<meta HTTP-EQUIV="REFRESH" CONTENT="1;'+

'URL=http://chen/dll/chat/chatmain.exe/qtchat">'+

'<p></p><p align="center">你的回复已经添加到论坛中了'+

'<br>两秒钟后回到论坛首页</p>';

就可以自动返回URL指向的地址了。

问:我先在Cookie中设定了一个值,然后想修改它,该如何做?

答:首先删除原来的Cookie中的值,方法是将Cookie的EXPires设定为必现在时间早的时间,然后在设定。例如:

//将原来Cookie中的记录删除

With Response.Cookies.Add do begin

Name := 'NickName';

Value := Request.ContentFields.Values['NickName'];

Secure := False;

Expires := Now-1;

end;

//将注册的用户名作为Cookie中的内容

With Response.Cookies.Add do begin

Name := 'NickName';

Value := Request.ContentFields.Values['NickName'];

Secure := False;

Expires := Now+100;

end;

问:如何通过Cookie保存临时信息?象一些论坛,在一次浏览过程中。当你第一次发言时,需要输入密码,而以后发言就不需要输入密码。而当断开后再次浏览就还需要输入密码,这样即方便又保证了安全性.

答:设置这样的Cookie的方法是不要设定Expires。例如:

//设定临时Cookies

with Response.Cookies.Add do begin

Name := 'TempPassWord';

Value:=sPassword;

end;

另外我们也可以下载一些专用的设定和读取Cookie的控件,这些控件支持在Web应用程序中加入类似ASP的Session的功能。下载地址是:http://codecentral.borland.com/

www.applevb.com

 
特别声明:以上内容(如有图片或视频亦包括在内)为网络用户发布,本站仅提供信息存储服务。
 
问:我想在一个Actionitem中增加cookie,然后sendredirect到另一个actionitem在那里验证cookie,有cookie这显示一个页面,否则返回。但我发现增加完cookie后,假如马上sendredirect则另一个actionitem取不到cookie值(说明cookie增加不成功),若不马上sendredirect而是response.content:='某一页面内容',然后用户点击连结到另一ActionItem则可以成功读出cookie。 答:Cookie是一个Response的头(header)部分,必须在正文之前设置。假如用SendRedirect,只有新页面才会传送,SendRedirect之前设置的Response会取消,导致Cookie不能加到新页面的头部分,所以设置Cookie不成功!解决办法是:永远不要在设置Cookie后再用SendRedirect。你所说的问题可以这样解决:在Html中可以加入代码自动转到另外一个页面,我们可以在WebActionItem的OnAction事件中写入: Response.Content:='<meta HTTP-EQUIV="REFRESH" CONTENT="1;'+ 'URL=http://chen/dll/chat/chatmain.exe/qtchat">'+ '<p></p><p align="center">你的回复已经添加到论坛中了'+ '<br>两秒钟后回到论坛首页</p>'; 就可以自动返回URL指向的地址了。 问:我先在Cookie中设定了一个值,然后想修改它,该如何做? 答:首先删除原来的Cookie中的值,方法是将Cookie的EXPires设定为必现在时间早的时间,然后在设定。例如: //将原来Cookie中的记录删除 With Response.Cookies.Add do begin Name := 'NickName'; Value := Request.ContentFields.Values['NickName']; Secure := False; Expires := Now-1; end; //将注册的用户名作为Cookie中的内容 With Response.Cookies.Add do begin Name := 'NickName'; Value := Request.ContentFields.Values['NickName']; Secure := False; Expires := Now+100; end; 问:如何通过Cookie保存临时信息?象一些论坛,在一次浏览过程中。当你第一次发言时,需要输入密码,而以后发言就不需要输入密码。而当断开后再次浏览就还需要输入密码,这样即方便又保证了安全性. 答:设置这样的Cookie的方法是不要设定Expires。例如: //设定临时Cookies with Response.Cookies.Add do begin Name := 'TempPassWord'; Value:=sPassword; end; 另外我们也可以下载一些专用的设定和读取Cookie的控件,这些控件支持在Web应用程序中加入类似ASP的Session的功能。下载地址是:http://codecentral.borland.com/ www.applevb.com
󰈣󰈤
 
 
 
>>返回首页<<
 
 热帖排行
 
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
©2005- 王朝网络 版权所有