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>
    分享到: 更多
  • 相关阅读:
    【视频剪辑】 Land of Dreams 航拍中国新疆篇 剪辑
    【视频剪辑】 2018年中国海空军掠影
    【视频剪辑】 成都雅安旅行vlog
    【PL/SQL】 学习笔记 (3)if 语句使用
    【PL/SQL】 学习笔记 (2)引用型变量和记录型变量
    dubbo远程方法调用的基本原理
    java8中的接口与时间操作
    接入天猫精灵auth2授权页面https发送ajax请求
    java8 流操作
    Lambda表达式和方法引用
  • 原文地址:https://www.cnblogs.com/redmoon/p/2010221.html
Copyright © 2011-2022 走看看