【问题标题】:How do I use cookies from Indy to initiate TWebBrowser cookies?如何使用 Indy 的 cookie 来启动 TWebBrowser cookie?
【发布时间】:2013-06-07 16:02:21
【问题描述】:

登录到我的服务器时,我使用TIdHttp 和 cookie 管理器。

稍后在程序中,用户可以在上传结果后激活TWebBrowser,在程序为其生成数据的数据库中进行搜索。

由于用户已经被授权为有效用户,我想让用户直接进入页面。

除了传统的 phpsessid 之外,PHP 脚本还设置了一些 cookie。

如何将 cookie 从我的 Indy 组件传输到 TWebBrowser,以便用户可以在同一会话中继续?

【问题讨论】:

标签: delphi session-cookies indy10


【解决方案1】:

TWebBrowser 是 Microsoft Internet Explorer 的包装器,它使用自己的 cookie 管理系统。没有 API 可用于将用户定义的 cookie 插入 Microsoft 的 cookie 存储区。但是,Microsoft 将 cookie 保存在一个特殊的文件夹中,您可以使用 SHGetSpecialFolderPath(CSIDL_COOKIES)SHGetKnownFolderPath(FOLDERID_Cookies) 以编程方式找到该文件夹​​。然后,您可以手动将 Indy 的 cookie 保存到 Microsoft 的 cookie 文件格式的文件中,如果您使用 Google 搜索,您可以在各种网站上找到在线文档。

【讨论】:

  • Indy 会话中的 sess_id 如果以这种方式插入到 tWebbrowser 中是否也有效?
  • cookie 的值由网络服务器决定,而不是由 Indy 决定。 Cookie 确实具有控制 Cookie 行为的其他属性(域、路径等),并且这些值也必须传递到 IE。我不知道有谁在实践中真正做到了这一切,但理论上应该是可能的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-23
  • 1970-01-01
  • 1970-01-01
  • 2020-01-19
  • 2023-03-14
  • 2012-02-20
  • 1970-01-01
相关资源
最近更新 更多