如何修改config?
这几天在做给WCF做加密传输,结果当然是实现了加密传输,同时也发现了一个问题,有没有大神来答疑解惑一下.
事情是这样的.
在客户端的配置中,需要加入一个behavior,在config文件中是这样的.
<behaviors> <endpointBehaviors> <behavior name="wsHttpBindingBehavior"> <clientCredentials > <serviceCertificate > <authentication certificateValidationMode="None" /> </serviceCertificate> </clientCredentials> </behavior> </endpointBehaviors> </behaviors>
按理说,任何在config的配置,都是可以写代码来实现的.这里写代码实现,我觉得又可以分两种:
- 写代码修改config的配置
- 写代码构造wcf的client.
因为我遇到这个需要修改的地方,Client已经部署了几千套,要一个一个去修改Client的配置,是很麻烦而且不科学的一件事情.幸好,程序架构能自动升级,只需要在升级的时候,用代码将behavior写到配置文件就可以了.听起来很完美.
可是呢,要把上面这段配置自动加到config中,我却找了几天都没有实现.情况如下:
- 利用Configuration类,增加behaviors节点,未到修改方法
- 利用代码修改在构造client的时候,只有通过System.ServiceModel.ClientBase<T>这种方式来修改,下面这段代码就可以
client.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = System.ServiceModel.Security.X509CertificateValidationMode.None;
3.可是现有代码框架不是用的ClientBase<T>,而是ChannelFactory<T>()方法创建的通道, ChannelFactory<T>()没有找到增加这个behaviors的方式.修改ChannelFactory变成ClientBase,现在这项目不可行,修改太大.
4.当然,还有一种方法就是把config文件当成xml文件来处理,这是最后的大招了.暂时不想用.
不知道能不能被人看到,反正每次都说我不能上首页.
====================================================================================================================
还是我自己来回答吧
ChannelFactory<ICalculator> factory = new ChannelFactory<ICalculator>("xxxx");
factory.Credentials.UserName.UserName="admin";
factory.Credentials.UserName.Password = "123456";
factory.Credentials.ServiceCertificate.Authentication.CertificateValidationMode = System.ServiceModel.Security.X509CertificateValidationMode.None;
var f = factory.CreateChannel();
如何修改config?的更多相关文章
- SAE设置记录:修改config.yaml实现地址重写和修改固定链接
刚搭建完sae博客后闲置下来了,偶尔写两篇文章,最近想整理整理sae,于是开始. 刚新建完博客修改固定链接,可是保存后直接访问出现问题,访问不到文章了,而且我的博客地址前面会出现"1.&qu ...
- thinkphp5或3.2 php动态修改config配置文件永久保存
thinkphp默认的参数方法只能读取,或者动态修改不能永久修改. 这是自己摸索出来的特发出来给需要的朋友(懂的朋友别笑话,功能我自己使用是没任何问题).有些参数还是保存在配置文件方便快捷!不一定所有 ...
- 修改config中的assemblyBinding
修改config中的assemblyBinding 未测试这段代码 private void SetRuntimeBinding(string path, string value) { XmlDoc ...
- C# 修改Config文件,增删查改
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/BYH371256/article/det ...
- 树莓派ubuntu系统下修改config.txt文件 树莓派config.txt文件修改记录
原文:https://www.raspberrypi.org/documentation/configuration/config-txt.md译文:http://my.oschina.net/fun ...
- 修改Config文件
/// <summary> /// Config文件操作 /// </summary> public class Config { /// <summary> // ...
- C# 动态修改Config
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); confi ...
- 修改config.php配置
$data=array( "name"=>"222222", "tel"=>159131, "address" ...
- 树莓派 ubuntu 系统下修改config.txt文件调整分辨率记录
参考 https://www.jianshu.com/p/99eea4db21c4 注:操作前最好先备份个 config.txt 文件 防止悲剧 防止悲剧 防止悲剧 终端下 进入boot/config ...
随机推荐
- scrollview嵌套recyclerview显示不全现象
只需在recyclerview的外层加入一个父布局就好了 <RelativeLayout android:layout_width="match_parent" androi ...
- IDEA导入Eclipse项目
目录 一.导入项目 二.启动项目 一.导入项目 1.欢迎界面,选择Import Project 2.选择源码的位置,点击OK 3.选择Eclipse模型,点击Next 4.默认选择,点击Next 5. ...
- 清除eclipse,STS workspace历史记录
记一下 打开eclipse下的/configuration/.settings目录 修改文件org.eclipse.ui.ide.prefs文件 把RECENT_WORKSPACES这项修改为你需要的 ...
- django之normalize函数的功能
from django.utils.regex_helper import normalize pat=r'^(?P<id>\d+)/(?P<name>\d+)$' bits= ...
- 2017-11-03 Fr OCT 球体积的导数为球表面积
上学期学立体几何时注意到这一点.去问林老师,没听明白(写完笔记后发现林老师讲得是对的,惭愧).今天下午考历史的时候突然想起来. 除了球体积的导数为球表面积外,还注意到圆体积的导数为圆周长.今天中午看w ...
- 20175213 2018-2019-2 《Java程序设计》第3周学习总结
## 教材学习内容总结 在第三周的学习过程中,我学习了第四章的内容. 第四章内容总结: 1.类是组成Java源文件的基本元素,一个源文件是由若干个类组成的. 2.成员变量分为实例变量和类变量.类变量被 ...
- python 处理时间 datetime 三板斧
import datetime1)#str -> datetime对象,(datetime对象之间可加减,date[0]为str) datetime.datetime.strptime(date ...
- 9. Palindrome Number (JAVA)
Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same back ...
- django 模板使用
1 配置 在工程中创建模板目录templates. 在settings.py配置文件中修改TEMPLATES配置项的DIRS值: TEMPLATES = [ { 'BACKEND': 'django. ...
- ACM-ICPC 2018 南京赛区网络预赛 J.sum(欧拉筛)
题目来源:https://nanti.jisuanke.com/t/A1956 题意:找一个数拆成无平方因子的组合数,然后求前缀和. 解题思路:我们可以把某个数分解质因数,如果某个数可以分解出三个相同 ...