zoukankan      html  css  js  c++  java
  • .NET Windows客户端程序在代理环境下的相关设置

    这里是一点经验的简短总结

    之前在用SmartClient+Remoting的方式开发业务管理系统的时候,就遇到过一次HTTP代理配置的问题。当时,由于Remoting无法自动配置代理,所以采取的办法就是在登录界面上提供代理网络配置的选项,让用户手动录入代理服务器的地址,端口,用户名和密码。

    在.NET 4.0中对于Web Service和WCF,就可以通过设置WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultNetworkCredentials;来自动配置大部分代理服务器。这种方式其实就是使用IE中对代理服务器的配置。

    对于DefaultNetworkCredentials的使用可以参考我另外一篇博客:DefaultNetworkCredentials vs DefaultCredentials

    通过以上代码配置后,并不能保证一定能正确访问,所以还需要进行如下处理:

    1. 通过代码配置为默认代理后
    2. 访问一下网络是否连通
    3. 如果没有连通,尤其访问407这个验证错误的代码,
    4. 那么就需要提示用户输入代理服务器用户名和密码

    我的实现代码如下:

    custom code for set proxy

    除了通过代码来配置默认代理外,也可以在配置文件中对WCF等进行配置,如下:

    <basicHttpBinding>
    
      <binding name="MyClientBinding" proxyAddress="http://gateway:8080" useDefaultWebProxy="false">
    
      </binding>
    
    </basicHttpBinding>
    
    or
    
    <customBinding>
    
      <binding name="MyCustomClientBinding">
    
        <binaryMessageEncoding />
    
        <httpTransport proxyAddress="http://gateway:8080" useDefaultWebProxy="false" />
    
      </binding>
    
    </customBinding>
    
    or
    
    <system.net>
    
      <defaultProxy useDefaultCredentials="true">
    
        <proxy bypassonlocal="False" proxyaddress="http://gateway:8080" />
    
      </defaultProxy>
    
    </system.net>
    分享到: 更多
  • 相关阅读:
    在Linux下运行YY,WINE方式,主要注册表修改点及字体文件列表
    安卓so下,cmake编译系统,如何仅导出指定符号
    AutoHotKey脚本模板:初始化、配置、退出
    资源ID管理插件:VS6/VS.NET
    ListView控件,表格模式下,如何调整行高
    通过wscript运行的JS脚本,如何引入另一个JS文件
    64位编译器下,将指针转换成UINT32,不需要修改编译选项的编码方式
    视频帧双缓冲区的两个版本
    opencv、numpy中矩阵转置,矩阵内的固定位置相应的坐标变换
    CMake下,某些选项的后调整
  • 原文地址:https://www.cnblogs.com/redmoon/p/2010221.html
Copyright © 2011-2022 走看看