博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
原生socket穿透HTTP代理服务器
阅读量:6939 次
发布时间:2019-06-27

本文共 757 字,大约阅读时间需要 2 分钟。


    曾经提到过WinInet穿透代理服务器可行(传输大文件或大数据包,不能保证续传),而原生socket时如果服务器需要认证则会失败,后来经过研究后,我们是搞定了的。下面简单说一下:
代理服务器(如ISA服务器)的认证种类有多中,如Basic、NTLM、Digest等单类或多类的组合。
1、Basic认证
     第一步、和服务器的初次数据交换后,检查包含"Proxy-Authenticate: Basic"的应答信息,则表示服务器可以采用Basic认证方式,当然也可能同时包含其他认证方式,只要通过一种方式认证即可。
    第二步、使用sUser、sPasswd信息的Base64位编码组合,再次和服务器进行交互(指明以Basic方式认证)。如果成功,则认证通过;否则,为用户密码信息错误;
2、NTLM认证
     第一步、和服务器的初次数据交换后,检查包含"Proxy-Authenticate: NTLM"的应答信息,则表示服务器可以采用NTLM认证方式,当然也可能同时包含其他认证方式,只要通过一种方式认证即可。
    第二步、使用sHost、sDomain信息的Base64位编码组合,再次和服务器进行交互(指明以NTLM方式认证)。如果成功,则成功则继续下一步;否则,为主机及域名信息错误;
    第三步、根据第二步获取的应答数据进行解析,并使用本地已知的sUser、sPasswd信息的Base64编码进行数据组装,再次和服务器进行交互(指明以NTLM方式认证)。如果成功,则认证通过;否则,为用户密码信息错误;
3、Digest认证
    如NTLM类似
这是几年前预研的结果,如有需要的朋友,可以和我联系,我帮着找找看。

转载于:https://www.cnblogs.com/java201408/p/3900966.html

你可能感兴趣的文章
MySQL 时间戳(Timestamp)函数
查看>>
免费的jquery ui 收集
查看>>
ComboBoxEdit 数据绑定 使用模板
查看>>
Android使用属性动画ValueAnimator动态改变SurfaceView的背景颜色
查看>>
Android tab_Host页面跳转,传值,刷新等问题汇总
查看>>
Javascript的setTimeOut()和setInterval()的定时器用法
查看>>
从头来之【图解针对虚拟机iOS开发环境搭建】 (转)
查看>>
第三届开源操作系统年度技术年会 --- 资料下载
查看>>
揭秘Windows10 UWP中的httpclient接口[2]
查看>>
vuejs 1.x - 实例:搜索过滤
查看>>
新书问答:Agile Management
查看>>
PHP|关于对象复制的一些事
查看>>
设计模式(Design Pattern)系列之.NET专题
查看>>
为 Nginx 添加 HTTP 基本认证(HTTP Basic Authentication)
查看>>
Python2.x的编码问题
查看>>
开源编辑器 Atom 简化代码审查过程
查看>>
如何用纯 CSS 创作一根闪电连接线
查看>>
SpringMVC整合Shiro
查看>>
python 多进程与子进程
查看>>
Git常用命令
查看>>