zoukankan      html  css  js  c++  java
  • 使用csExWB Webbrowser 控件获取HttpOnly的cookie

    由于微软Webbrowser控件的限制,使用Webbrowser.Document.Cookie是不能获取到HttpOnly的cookie的。

    解决办法:采用扩展的csExWB Webbrowser控件,csExWB Webbrowser控件支持对HTTP头的监控,这就给了我们读取HttpOnly Cookie数据的方法,

    csExWB Webbrowser控件官方功能介绍:

    csExWB介绍csEXWB is a C# .NET 2.0 control that creates, hosts and sinks the events of the original Webbrowser control (Not .NET or any other wrapper). Advanced customization and total control over the Webbrowser control are achieved via implementation of a number of interfaces, along with the addition of many methods, properties, events and a COM library.

    主要功能之一,监控HTTP请求和响应
    Monitor HTTP and HTTPS request and response headers for all resources, images, sounds, scripts, etc, with the opportunity to add your own headers

     通过这个特性,我们就可以获取到每一次请求的原始HTTP数据,然后想干什么干什么。

    代码片段摘抄如下:

    注册事件

    this.cEXWB1.ProtocolHandlerOnResponse += new csExWB.ProtocolHandlerOnResponseEventHandler(this.cEXWB1_ProtocolHandlerOnResponse);
    this.cEXWB1.ProtocolHandlerOnBeginTransaction += new csExWB.ProtocolHandlerOnBeginTransactionEventHandler(this.cEXWB1_ProtocolHandlerOnBeginTransaction);

     在事件里处理HTTP头

    private void cEXWB1_ProtocolHandlerOnBeginTransaction(object sender, csExWB.ProtocolHandlerOnBeginTransactionEventArgs e)
            {

            }

            private void cEXWB1_ProtocolHandlerOnResponse(object sender, csExWB.ProtocolHandlerOnResponseEventArgs e)
            {
                //记录分析cookie
                string headers = e.m_ResponseHeaders;
                //.......自定义代码,对http头数据进行处理可以获得HttpOnly的Cookie
            }

     调用StartHTTPAPP()和StartHTTPSAPP()开始监控,调用StopHTTPAPP()和StopHTTPSAPP()方法停止监控。

    cEXWB1.StartHTTPAPP();
    cEXWB1.StartHTTPSAPP();


    cEXWB1.StopHTTPAPP();
    cEXWB1.StopHTTPSAPP();

     codeproject上的链接:http://www.codeproject.com/KB/miscctrl/csEXWB.aspx

    googlecode上的项目主页:http://code.google.com/p/csexwb2/

    这个控件比微软自带的Webbrowser控件好用很多,唯一不足是需要额外注册ActiveX组件。

  • 相关阅读:
    数据库模式
    数据流模式、转换、格式与操作
    桥接模式=抽象层协作关系+继承体系注入
    php 中更简洁的三元运算符 ?:
    larave5.6 将Excel文件数据导入数据库代码实例
    Laravel获取所有的数据库表及结构
    Laravel框架数据库CURD操作、连贯操作总结
    insert into 语句的三种写法
    Laravel 上传excel,读取并写入数据库 (实现自动建表、存记录值
    laravel5.4将excel表格中的信息导入到数据库中
  • 原文地址:https://www.cnblogs.com/hhh/p/2229721.html
Copyright © 2011-2022 走看看