我曾作过效果还可以,在serversocket的ClientConnect事件反馈一个用HTML写的密码询问的Web页给IE(实际是http串,http本身是个文本协议),然后接收IE发过来的密码串,它包含在IE提交过来的串中,如果密码正确就创建连接目标服务器的ClientSocket,否则断开该连接.你可写一个程序接收IE通过80端口发出的请求串是什么样的(跟踪一下就可看到http串是什么样的了)
,返回串也用同样方法搞定.

解决方案 »

  1.   

    可能是我没有把问题说清楚吧。因为我的机是在局域网里的,需要通过代理服务器(A)上网,而且需要通过用户名和密码验证。现在我想自己写一个代理服务器(B),IE通过(B)连接(而且可以让其他机器通过(B)连接(A),把用户名和密码加在服务器(B)上,这样每次上网就在代理服务器(B)上自动发送验证到代理服务器(A),不需要每次打开IE都要填入用户名和密码。问题是:我怎么在代理服务器(B)上向(A)发送验证?
      

  2.   

    你的目的:你的代理程序代替所有客户端发送验证密码给代理服务器(A),通过后你的程序只起一个转发的作用,是吗?
    如果是这个目的:
    你写的代理程序要模仿IE发一个请求给代理服务器(A),然后代理服务器(A)会返回一个问用户名及密码的web页,你的代理程序再提交该页到代理服务器(A),然后验证通过,后面你就是简单的转发所有的包就行了。写这个程序必须有点ASP的基础,至少知道web页的提交原理(http原理),可以写一个程序做实验,一个程序用ServerSocket监听80端口,然后启动一个IE窗口,在地址栏任意输入一个地址(IE的代理要设置为ServerSocket程序所在机的IP),ServerSocket程序将收到的IE请求串显示出来,你心理就有数了。用同样的方法可知道代理服务器(A)会发什么的验证串过来,你就可给他了,你的程序该发什么串给他了。
      

  3.   

    谢谢NameNick(三三) !
    但是在代理服务器(B)接收到的IE发出的验证串是经过加密的,
    我不知道怎么在(B)上将用户名和密码加密,由于目前无法试验,
    也不知道能不能直接向(A)发送未经加密的户名和密码。