RSS
热门关键字:  数据挖掘  人工智能  数据仓库  搜索引擎  数据挖掘导论

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

来源: 作者:unkonwn 时间:2005-09-04 点击:

 

问:我想在一个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中的值,方法是将CookieExpires设定为必现在时间早的时间,然后在设定。例如: 数据挖掘研究院

//将原来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应用程序中加入类似ASPSession的功能。下载地址是:http://codecentral.borland.com/ 数据挖掘实验室

www.applevb.com

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
匿名?