Welcome 微信登录

首页 / 网页编程 / ASP.NET / IE自动登陆-Navigate篇

IE自动登陆-Navigate篇2011-11-18 博客园 Christmas早些天,因项目需要做了一个自动登陆网站的ActiveX插件。主要功能就是通过这个插件启动一个IE实 例或者使用插件所在的浏览器,

打一个网站(即通过Navigate导航),通过IHTMLDocument2接口找到相关元素,并填入相应的值,最后 模拟点击登陆按钮,完成登陆。这种

方法简单,而且理论上属于模拟人工登陆,受限性比较小。但是它有一个缺点,就是有打开登陆页面 ,填入值的过程,没有直接进入登陆

后的页面看上去更自然。

再次查看MSDN,IWebBrowser2::Navigate声明:

   HRESULT Navigate(          BSTR url,    VARIANT *Flags,    VARIANT *TargetFrameName,    VARIANT *PostData,    VARIANT *Headers  );
第四个参数是PostData,那是否可以附带PostData数据直接登陆进去呢?向下看

PostData:

[in] Pointer to data to send with the HTTP POST transaction. For example, the POST transaction is used to send data gathered

by an HTML form. If this parameter does not specify any post data, IWebBrowser2::Navigate issues an HTTP GET transaction.

意思是说在这里指定PostData参数与通过 HTML form提交是一样的。当然是可行了。

这个参数的类型是VARIANT,MSDN:

The post data specified by PostData is passed as a SAFEARRAY Data Type structure. The VARIANT should be of type VT_ARRAY and point

to a SAFEARRAY Data Type. The SAFEARRAY Data Type should be of element type VT_UI1, dimension one, and have an element count equal

to the number of bytes of post data.