代码之家  ›  专栏  ›  技术社区  ›  Jonathan.

UIWebView中的Cookie

  •  9
  • Jonathan.  · 技术社区  · 14 年前

    NSArray* cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];
    for (NSHTTPCookie *cookie in cookies) {
        [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];
    }
    

    正在检查Cookie的计数是否为0,以便将其全部删除。但当我去stackoverflow时,它仍然会识别我的Google帐户并让我登录。这是怎么发生的?我觉得饼干也有用?

    3 回复  |  直到 14 年前
        1
  •  7
  •   Tim Cooper    13 年前

    我必须处理完全相同的问题,我找到了两种方法来处理这个问题。

    • 在用户进入网络视图后立即删除cookies通常不会得到预期的结果。

    然后我集成了一个持久的手动标志,在“注销”(即清除所有cookies/删除其他用户数据)操作中设置为True。 在下一次登录(又名基于用户登录的操作)时,我再次清除了cookies(与您在代码帖子中所做的相同)。

    后来我发现,听 NSHTTPCookieManagerCookiesChangedNotification

    希望我能帮忙。

        2
  •  6
  •   defbyte    14 年前

    请尝试更改cookie接受策略:

    [NSHTTPCookieStorage setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyNever];
    
        3
  •  0
  •   RamjanSayyad    9 年前

    使用以下命令,它将工作。。

       NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
       NSHTTPCookie *cookie;
       for(cookie in [storage cookies])
        {
          NSLog(@"cookie to be deleted:%@", cookie);
          [storage deleteCookie:cookie];
        }
       [[NSUserDefaults standardUserDefaults] synchronize];
    

    这里不要错过最后一行[[NSUserDefaults standardUserDefaults]synchronize];否则您将继续困惑。