如何修改config?

来源:https://www.cnblogs.com/birds-zhu/archive/2019/03/25/10592457.html
-Advertisement-
Play Games

這幾天在做給WCF做加密傳輸,結果當然是實現了加密傳輸,同時也發現了一個問題,有沒有大神來答疑解惑一下. 事情是這樣的. 在客戶端的配置中,需要加入一個behavior,在config文件中是這樣的. 按理說,任何在config的配置,都是可以寫代碼來實現的.這裡寫代碼實現,我覺得又可以分兩種: 因 ...


這幾天在做給WCF做加密傳輸,結果當然是實現了加密傳輸,同時也發現了一個問題,有沒有大神來答疑解惑一下.

事情是這樣的.

在客戶端的配置中,需要加入一個behavior,在config文件中是這樣的.

<behaviors>

      <endpointBehaviors>

        <behavior name="wsHttpBindingBehavior">

          <clientCredentials  >

            <serviceCertificate >

              <authentication  certificateValidationMode="None"  />

            </serviceCertificate>

          </clientCredentials>

        </behavior>

      </endpointBehaviors>

</behaviors>

 

按理說,任何在config的配置,都是可以寫代碼來實現的.這裡寫代碼實現,我覺得又可以分兩種:

  1. 寫代碼修改config的配置
  2. 寫代碼構造wcf的client.

因為我遇到這個需要修改的地方,Client已經部署了幾千套,要一個一個去修改Client的配置,是很麻煩而且不科學的一件事情.幸好,程式架構能自動升級,只需要在升級的時候,用代碼將behavior寫到配置文件就可以了.聽起來很完美.

可是呢,要把上面這段配置自動加到config中,我卻找了幾天都沒有實現.情況如下:

  1. 利用Configuration類,增加behaviors節點,未到修改方法
  2. 利用代碼修改在構造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文件來處理,這是最後的大招了.暫時不想用.

 

      不知道能不能被人看到,反正每次都說我不能上首頁.

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1RabbitMQ 特點 與 SpringAMQP 完美整合、API 豐富。 集群模式豐富,表達式配置,HA 模式,鏡像隊列模型。 保證數據不丟失的前提做到高可靠性、可用性。 ...
  • 給定一個按照升序排列的整數數組 nums,和一個目標值 target。找出給定目標值在數組中的開始位置和結束位置。你的演算法時間複雜度必須是 O(log n) 級別。如果數組中不存在目標值,返回 [-1, -1]。 示例 1:輸入: nums = [5,7,7,8,8,10], target = 8輸 ...
  • VBCSHARP代碼互轉工具,適用於VB.NET和C#代碼相互轉換翻譯,可代碼段轉換和批量文件轉換。於2019年3月5日製作完成,允許各群隨意分發和使用。 下載地址:下載鏈接 歡迎使用 下載地址:下載鏈接 ...
  • 我說一句話你就知道我是乾什麼的 hello world ...
  • 當 多條件 left join on 時 LEFT OUTER JOIN on new { u.UserId, ue.ExamId } equals new { sac.UserId, sac.ExamId } into sac2 from sac in sac2.DefaultIfEmpty() ...
  • 一.概述 ASP.NET Core Identity提供了一個框架,用於管理和存儲在 ASP.NET Core 應用中的用戶帳戶。 Identity添加到項目時單個用戶帳戶選擇作為身份驗證機制。 預設情況下,Identity可以使用的 Entity Framework (EF) Core 數據模型。 ...
  • 日誌輸出現要改為json格式,網上查詢layout配置為JsonLayout就可以了,結果發現輸出中文為unicode編碼,看很多文章說配置encode="false"就可以了,結果配置後是顯示中文,但沒有了雙引號,和內容中包括雙引號的話直接輸出,不是json格式了。後面仔細查看了官方文檔,發現原來 ...
  • 生成隨機字元串,字元組合等... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...