从 IE 中读取 Cookie 信息

本文介绍如何通过引用Microsoft Internet Controls和Microsoft.mshtml COM组件,从Internet Explorer(IE)中读取Cookie信息。首先正常登录系统以生成Cookie,然后在F#代码中通过ShellWindowsClass和HTMLDocument接口获取特定站点的Cookie,并将其保存到CookieContainer中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从 IE 中读取 Cookie 信息


我们首先正常登录到系统中,就会在客户端产生正常的 Cookie 信息。
需要引用两个 COM 组件:
1、Micrisoft Internet Controls 1.1,即 SHDocVw。
    这个组件,如果在脚本中运行时,直接导入 c:\Windows\System32\SHDocVw.dll,好像不行,会出错:
bad cli, header rva 0
通过添加引用,编译,会在 bin 下的相应目录中自动创建一个中 Interop.SHDocVw.dll 的文件,再用 #r 命令引用,就能正常使用了。
2、Microsoft.mshtml 7.0.3300.0


let mutable ck = new CookieContainer()


let GetCookieFromIE ( site: string ) =
  let sw = new SHDocVw.ShellWindowsClass()
  (
    [ for i in sw -> i :?> SHDocVw.InternetExplorer ]
    |> Seq.filter( fun i -> i.FullName.ToLower().Contains("iexplore.exe") )
    |> Seq.filter( fun i -> i.LocationURL.ToLower().Contains( site.ToLower() ) )
    |> Seq.map( fun i -> i.Document :?> mshtml.HTMLDocument )
    |> Seq.map( fun i -> i.cookie )
    |> Seq.head
  ).Split(';')  


let SetCookie site= 
    ( GetCookieFromIE site )
    |> Seq.iter( fun i -> ck.SetCookies(new Uri( site ), i) )


SetCookie "http://site.site.site"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值