WCF一步一步往前爬(四)

來源:互聯網
上載者:User

第四步:

WCF安全問題探討。以及如何使用“服務跟蹤查詢器”工具。

WCF程式有更多的安全問題,因為訊息需要跨越機器邊界傳遞,對訊息進行加密是一方面,帶簽名是另一種方式。通常WCF包括傳輸通道和訊息層級的安全性。如https就是具有更高安全性的傳輸專用通道,訊息層級包括加密和解密等。

一、訊息層級的TCP服務保護

樣本:NetTcpBinding綁定的訊息加密。宿主程式和用戶端的設定檔中分別增加

       <netTcpBinding>
                <binding name="ProductsClientTcpBindingConfig">
                    <security mode="Message">
                        <message algorithmSuite="Basic128" />
                    </security>
                </binding>
        </netTcpBinding>

然後修改binding=netTcpBinding的endpoint指定bindingConfiguration屬性=tcpBindingConfig,這樣這種綁定的訊息會自動進行加密和解密。這樣可以通過service trace viewer工具查看D:\project\LS.PRJ2011\ProductsServiceHost\ProductsService.svclog(這個地址在你本機可能需要修改)這個檔案來觀察訊息是否真正的被加密了。

基本BasicHttpBinding綁定的訊息加密需要認證,比較麻煩,但WSHttpBinding綁定的訊息加密預設就會有訊息加密功能,所以只要提供一個WSHttpBinding的endpoint就OK。

二、在傳輸通道層級保護一個HTTP服務

我提到過,傳輸通道的保護可以配置為https來增強保護,由於啟用https需要認證檔案,比較麻煩。暫時不示範了,後面有時間再補充吧。

三、認證與授權

認證和授權是基本form驗證的一種有效方式,也是在web程式中用的最多的一種驗證方式。WCF對認證和授權有了很好的支援,這個主題也很廣泛,這裡只是簡單示範伺服器端怎麼樣拿到用戶端的windows使用者名稱。

面來實踐一下Microsoft Service Trace Viewer這個WCF工具是如何耍的(下面的項目都是基於在前面的執行個體)

開啟ProductsServiceHost項目,右鍵app.config->編輯WCF配置->診斷->訊息日誌記錄。把LogEntireMessage,LogMessagesAtServiceLevel,LogMessagesAtTransportLevel屬性設為True。

診斷->源->建立源。名稱:System.ServiceModel.MessageLogging;層級:Verbose。

診斷->接聽程式->建立接聽程式。InitData:D:\project\LS.PRJ2011\ProductsServiceHost\ProductsService.svclog;Name:MessageLog;源:(添加)System.ServiceModel.MessageLogging。

ok,使用Microsoft Service Trace Viewer的前提配置就搞定。把檔案D:\project\LS.PRJ2011\ProductsServiceHost\ProductsService.svclog開啟就可以跟蹤訊息。

在這裡,我是想一探訊息層級的加密機制是怎麼個回事。那麼還得做些設定。

綁定->建立綁定配置。Name:ProductsServiceTcpBindingConfig;->安全性。Mode:Message;AlgorithmSuite:Basic128;MessageClientCredentialType:Windows並且將bindingConfiguration="ProductsServiceTcpBindingConfig"

對於用戶端項目ProductsClient,建立綁定ProductsClientTcpBindingConfig,其他配置與服務端一樣。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.