1. 程式人生 > >專案中使用WCF替換asmx Web service總結

專案中使用WCF替換asmx Web service總結

以前專案解決方案中,用http協議的asmx Web service作伺服器資料訪問入口,在SoapHeader中寫入使用者名稱和加鹽密碼進行身份認證。

但http asmx服務都是明文傳輸,資料在傳輸過程中很容易被擷取、篡改。在內網使用、使用者量小、安全問題不嚴重時可以採用。

因專案發展,需要對伺服器進行改造,升級成更高階的安全方式。

最先想到的是將http協議改用https,解決資料明文傳輸和有可能被篡改問題。

但是,https傳輸存在兩個問題:1是客戶機要安裝證書,2是執行環境中客戶機與伺服器之間可能存在安全接入邊界系統,傳輸層加密存在諸多問題和不確定性。

因此,決定採用WCF Message加密方案,不使用Transport安全模式,保持http傳輸協議。這樣客戶機與伺服器通訊資料可以通過安全接入邊界系統,不同的網路結構對使用者基本是透明的。

實現WCF Message安全方案的步驟:

1,建立服務證書:Visual Studio Tools命令提示符下執行(假設證書名為WCFServerCA,實際可以替換為自己想要名)

makecert -r -pe -n "CN=WCFServerCA" -sr LocalMachine -ss My -sky exchange

2,執行MMC控制檯,從本地計算機節點證書內匯出WCFServerCA證書,儲存為帶私鑰的證書檔案,副檔名為.pfx。
3,在執行服務的計算機上匯入該.pfx證書,匯入到受信任的根證書頒發機構和受信任人下。

4,