C 客戶端通過安全憑證呼叫webservice

2022-09-03 05:51:07 字數 1013 閱讀 4904

怎麼解決給xml web services 客戶端加上安全憑據,從而實現呼叫安全的遠端web方法?

首先,有遠端web服務service繼承自system.web.services.protocols.soaphttpclientprotocol。

再者,步驟有三:

1,建立憑據networkcredential。

2,設定憑據service.credentials。

3,設定預身份驗證,這樣在已經建立的連線上再次呼叫方法時就會把憑據加上。**如下

networkcredential credential = new system.net.networkcredential("

username

", "

passw0rd

");//

憑據 credentialcache credentialcache = new credentialcache();//

為多個憑據提供儲存

credentialcache.add(new uri(service.url), "

basic

", credential);

service.credentials = credentialcache;//

獲取或設定 xml web services 客戶端身份驗證的安全憑據

service.preauthenticate = true;//

預身份驗證

最後,客戶端呼叫web方法service.webmethod()。

發現的問題是web方法被呼叫了很多次才生效。通過網路抓包工具,發現每次向遠端伺服器發起post請求時http頭沒有加上憑據authentication: basic 密文。

解決辦法是通過在service內部重寫getwebrequest方法,在呼叫基類方法得到的webrequest上新增乙個head為authentication: basic 密文,從而實現每次傳送post請求是加上憑據。缺點是密文被寫死,也不是自動生成的。

web呼叫客戶端程式

2018.3.15更新 慚愧今天才看到這篇部落格寫的很贊,很全面,就是有點長,哈哈,不過看來搜尋也是一門學問啊。最近做乙個整合需求,我們是b s架構的,對方是c s架構的,對方直接扔過來乙個exe連ocx都沒有,讓我們呼叫,也就是說,我們需要通過js程式去呼叫他們的客戶端程式並傳入多個引數,當時內心...

通過Web頁面自動發布客戶端軟體

作為軟體產品發布的途徑之一,開發人員應該了解通過 web 頁面發布客戶端軟體的基本方法和流程。發布過程涉及到軟體模組簽名 安裝指令碼和打包過程,具體流程如下 1.獲取或生成乙個軟體出版證書 本文通過自已生成數字證書進行演示 2.使用證書對需要發布的軟體模組進行數字簽名 建議,可省略 3.編寫inf安...

通過WEB頁面自動發布客戶端軟體

作為軟體產品發布的途徑之一,開發人員應該了解通過 web 頁面發布客戶端軟體的基本方法和流程。發布過程涉及到軟體模組簽名 安裝指令碼和打包過程,具體流程如下 1.獲取或生成乙個軟體出版證書 本文通過自已生成數字證書進行演示 2.使用證書對需要發布的軟體模組進行數字簽名 建議,可省略 3.編寫inf安...