怎麼解決給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安...