首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么NSHTTPCookieStorage不能正确保存cookies?

为什么NSHTTPCookieStorage不能正确保存cookies?
EN

Stack Overflow用户
提问于 2010-10-30 09:25:57
回答 3查看 4.5K关注 0票数 4

我的iPhone应用程序中的NSHTTPCookieStorage出现了一些奇怪的问题。当我在web服务上调用login操作时,该服务会传回一个名为" auth“的auth cookie以及一些其他cookie。

当我注销用户时,我在服务器上调用一个注销操作来删除cookie。如果我在调用NSHTTPCookieStorage之前打印注销cookie的结果,我会看到预期的身份验证cookie。注销后,我看到auth cookie不再存在(不出所料)。

但是,如果我关闭应用程序并重新启动它,身份验证cookie又回来了!

我不知道这是怎么回事。如果NSHTTPCookieStorage只是简单地不保存任何cookie,这是一回事,但它似乎正在保存其中的一些cookie。

有人知道发生了什么吗?是否需要手动管理cookies?有什么方法可以将NSHTTPCookieStorage中的内容提交到磁盘上吗?

EN

回答 3

Stack Overflow用户

发布于 2010-11-02 19:42:01

有三种与URL请求相关的本地存储机制会对如何处理身份验证挑战产生影响:(显然) NSHTTPCookieStorageNSURLCredentialStorageNSURLCacheNSURLCredentialStorage可能是您应该关注的下一个地方,但清除所有缓存通常被认为是获得您想要的效果的最可靠方法。

这段代码很方便:https://gist.github.com/559071 (清除所有缓存)。

票数 1
EN

Stack Overflow用户

发布于 2010-11-08 10:59:04

尼克,我假设你是在iOS4.xSDK和XCode 3.x上构建的。这可能不太可能,但您提到要关闭应用程序,然后重新启动它。从iOS4.x开始,iPhone应用默认开启多任务。这意味着,无论你想不想要它,如果你像往常一样简单地关闭它,你的应用程序将留在内存中。解决这个问题的方法是进入你的app-name-Info.plist,将“应用程序不在后台运行”键添加到列表中。然后选中复选框。我建议你在保存你的项目后,在这一点上做一个完整的清理和构建。此外,如果您在模拟器中运行,建议您通过选择"iPhone模拟器“,然后从应用程序下拉菜单中选择"Reset Content and Settings”来完全重置模拟器。

票数 0
EN

Stack Overflow用户

发布于 2011-03-24 19:33:42

我也遇到了同样的问题,我用NSUserDefaults解决了它。

请参考this link

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4056858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档