【发布时间】:2011-10-30 04:57:48
【问题描述】:
我正在解决我的 Mac OSX 10.5 应用程序中的一个问题,该问题需要在用户从应用程序注销时删除 cookie,以便其他用户无需退出应用程序即可登录。当用户第一次进行身份验证时,WebView 使用单例 cookie 存储类 NSHTTPCookieStorage 接收并缓存 5 个 cookie。当我尝试使用 [NSHTTPCookieStorage cookiesForURL:] 方法检索 cookie 时,我只得到 4 个。这意味着第 5 个与其他 URL 相关联。我无法使用域来识别 cookie,因为我可能会删除其他应用程序正在使用的 cookie。我的思路如下:
- 在加载 URL 时禁用 WebView 的 cookie。
- 我曾尝试使用 [NSMutableURLRequest setHTTPShouldHandleCookies:NO] 但这没有帮助。而且我无法使用 NSHTTPCookieStorage 更改 cookie 策略,因为它会影响其他应用程序。
- 检索我正在加载的 URL 的 cookie
- 我不知道这是否可能。我搜索了所有可用于 WebView 的委托方法,但没有找到任何东西
- 使用 [WebFrame reloadFromOrigin] 实例方法重新加载 URL
- 这仅适用于 Mac OSX >= 10.6
- 重新创建 WebView 的实例
- 没有帮助,cookie 仍然存在
我也尝试了 WebPreferences 类提供的不同选项,但这并没有帮助。提前感谢您提供解决此问题的任何提示。
【问题讨论】:
标签: objective-c cookies