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>
    分享到: 更多
  • 相关阅读:
    SpringBoot-Mysql模板多数据源加载
    SpringCloud-动态配置变化监控-获取变化(支持Config、Nacos)
    SpringBoot-ElasticJob封装快速上手使用(分布式定时器)
    关键字(标签)提示组件——拼音、汉字混合搜索
    写一个高性能的敏感词检测组件
    一个文件搞定Asp.net core 3.1动态页面转静态页面
    浅谈C#在网络波动时防重复提交
    对RC4算法进行改写,新的加密算法RCX。
    【ToolGood.Words】之【StringSearch】字符串搜索——基于BFS算法
    万能解决方案之彻底解决macOS cocoapods环境的所有问题
  • 原文地址:https://www.cnblogs.com/redmoon/p/2010221.html
Copyright © 2011-2022 走看看