OWA_COOKIE不会删除

时间:2014-02-27 12:23:54

标签: sql oracle cookies plsql

我有一个从浏览器中删除cookie的功能,出于某种奇怪的原因,我的所有细节都是正确的,它是在Mozilla中使用firebug完成和监控的,下面是我的创建,删除和读取cookie函数:

    PROCEDURE create_Session_Cookie (i_Value IN VARCHAR2)
   IS
   BEGIN
      -- Create a cookie
      OWA_COOKIE.send (name      => 'CreateCookie',
                       VALUE     => i_Value,
                       expires   => SYSDATE + INTERVAL '15' MINUTE,
                       PATH      => '/hello');
   --owa_util.http_header_close;

   EXCEPTION
      WHEN OTHERS
      THEN
         NULL;
   END create_Session_Cookie;

 PROCEDURE delete_Session_Cookie
 IS 
 BEGIN
 OWA_COOKIE.REMOVE(
                   name   => 'CreateCookie',
                   val    => read_Session_Cookie
                  );
 END delete_Session_Cookie;


   FUNCTION read_Session_Cookie
      RETURN VARCHAR2
   IS
      l_SessionCookie   OWA_COOKIE.COOKIE;
      l_SessionValue    VARCHAR2 (50);
   BEGIN
      -- Read cookie into cookie record
      l_SessionCookie := OWA_COOKIE.GET ('CreateCookie');
      -- Extract value from cookie record
      l_SessionValue := l_SessionCookie.VALS (1);

      RETURN l_SessionValue;
   -- If the cookie does not exist an exception will be thrown
   -- so we return null
   EXCEPTION
      WHEN OTHERS
      THEN
         RETURN NULL;
   END read_Session_Cookie;`

之前有人有这样的问题吗?

1 个答案:

答案 0 :(得分:0)

事实上。在删除它们时,OWA_COOKIE的结果非常复杂。我刚刚实现的解决方案是在我的沙盒中工作。

我只是执行另一组,而是将过期日期设置为过去的某个日期,而不是使用OWA_COOKIE.REMOVE调用。

在观看使用fiddler2设置的cookie之后,看起来无论如何都应该这样做。不同的是路径和安全选项设置,我的cookie实际上消失了。希望这会有所帮助。

OWA_COOKIE.SEND(
           NAME => 'CreateCookie',
           VALUE => read_session_cookie, --Could also set this to null
           EXPIRES => SYSDATE -1,
           PATH => '/',
           DOMAIN => 'mydomain.com', 
           SECURE => NULL);