晨鸟科技

 找回密码
 注册
搜索
查看: 13521|回复: 4
打印 上一主题 下一主题

asp.net程序使用代理访问网页——自动检测问题解决,求详解

[复制链接]
跳转到指定楼层
楼主
发表于 2010-12-23 22:53:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Star 于 2010-12-24 14:43 编辑
/ X/ u8 R$ K8 _0 m% ?* b6 [3 r0 `) [  L1 C$ q; E
第一种解决办法是针对使用webclient访问网页的:为WebClient配置proxy属性,下面是网上的一个距离,源地址是http://bbs.firnow.com/dview16t58782.html
  1. WebClient   clt   =   new   WebClient();
    / C/ \' c! p6 a. ~$ ?0 X
  2. WebProxy   proxy   =   new   WebProxy( "ProxyServer ",   80);
    . w  a) h( n7 g$ n$ c. ], |
  3. NetworkCredential   crd   =   new   NetworkCredential( "UserName ",    "Password ",    "Domain "); 6 \& d* Z7 U" }+ U! K. b& N' Q
  4. proxy.Credentials   =   crd;
    * @( A8 C: {9 t3 q6 E
  5. clt.Proxy   =   proxy;
复制代码
但是EB_EXP中使用的是HttpWebRequest,这个的解决办法也是为HttpWebRequest配置proxy信息,HttpWebRequest对象也有Proxy属性的4 ]4 I; a( i/ X+ }7 U( `
9 q: W9 L! y) A- _+ j- @# L
可是,应该是程序自动检测用户浏览器是否使用了代理,使用了代理则获取用户浏览器中设置的代理的username和password等信息访问网络(不知道这个是否可行),如果没有使用代理,则直接访问0 S# ?- V# q9 B# q- o" Y/ h9 R  o0 [

; t& d2 f  ^: u& V7 f) x功能的关键是:
" U: p7 T- J5 u) l; L1、asp.net使用代理访问网络
) M/ I) C3 z1 r5 t" H3 x2、代理自动检查与获取
沙发
 楼主| 发表于 2010-12-24 14:17:28 | 只看该作者
可以如下面的代码示例所示,通过将空 Proxy 用于您的请求,禁用请求级别的自动代理检测
  1. public static void DisableForMyRequest (Uri resource)
    * O1 b' m2 x* f1 c* L
  2. {  P1 o7 ~  q4 h* |( C  t0 B
  3.     WebRequest request = WebRequest.Create (resource);
    ( f3 C2 J! \5 k/ `8 i8 _0 B
  4.     request.Proxy = null;! y! u' B" `( F: X: K+ s: o2 B
  5.     WebResponse response = request.GetResponse ();
    ' l1 @0 y4 k- C, k, \. B2 @
  6. }
复制代码
板凳
 楼主| 发表于 2010-12-24 14:22:23 | 只看该作者
所以说,代理的检测是.net做的事情咯?
地板
 楼主| 发表于 2010-12-24 14:42:03 | 只看该作者
实验:
# j  K/ T. Y# E% N. s在EB_EXP系统中使用“前往”进行测试:
% }! ~% A1 Z' [4 e8 c# ~Part1:程序是否能自动检测IE内核的浏览器的代理8 u& Y( B4 H. ]! d6 ]# E
1、IE中不启用代理服务,“前往”www.cnn.com,是不可以访问,在校园环境下,则弹出校园网认证窗口Drcom上网登录窗
$ ^, i4 V9 z/ y. n/ f( M! T2、IE中启用代理服务,可以在浏览区显示cnn的网页  F, o0 J) z7 u5 v: A( T6 I
Part2:IE内核以外的浏览器:使用火狐做实验
$ }' G4 U4 D) @( Z" S: g1、火狐中不启用代理不能访问;火狐中启用代理能访问;
8 y, A- S& }7 s5 t2、IE中启用代理,火狐中不启用,使用火狐浏览器不能访问:说明不同浏览器访问网络是基于其本身设置的( n# y# R8 l# v. S8 B
- o! i5 U) o, Y1 O3 [8 K2 ]
总结:.net开发的系统是能自动检测查找代理的,在程序中不用进行代码设置,如果要禁用代理服务,则在程序中将HttpWebRequest或者WebClient的Proxy属性设置为null% p1 P- m6 _+ w0 i
1、
5#
 楼主| 发表于 2010-12-24 14:42:53 | 只看该作者
好啦,不过还需要了解浏览器访问网络资源的原理,才能解释清楚这个问题呀
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|晨鸟科技 ( 沪ICP备09012675号 )

GMT+8, 2026-3-16 20:38 , Processed in 4.066146 second(s), 8 queries , Wincache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表