WCF服務(wù)保護正確實現(xiàn)步驟淺析
作為一個合格的開發(fā)人員,在編寫程序的同時,首要考慮的就是程序的安全問題。那么今天我們將會為大家詳細講解一下WCF服務(wù)保護的實現(xiàn)方法,希望能夠幫助大家從中對這方面的安全知識有一個詳細了解。#t#
通過說到安全,我們會想到認證和授權(quán),要求登錄的系統(tǒng)都提供了認證和授權(quán)的安全性。
WCF程序有更多的安全問題,因為消息需要跨越機器邊界傳遞,對消息進行加密是一方面,帶簽名是另一種方式。通常WCF包括傳輸通道和消息級別的安全性。如https就是具有更高安全性的傳輸專用通道,消息級別包括加密和解密等。下面分別來介紹一下
一、消息級別的WCF服務(wù)保護
示例:NetTcpBinding綁定的消息加密。宿主程序和客戶端的配置文件中分別增加
- < system.serviceModel>
- ...
- < bindings>
- < netTcpBinding>
- < binding name="tcpBindingConfig">
- < security mode="Message">
- < message algorithmSuite="Basic128" />
- < /security>
- < /binding>
- < /netTcpBinding>
- < /bindings>
- ...
- < /system.serviceModel>
然后修改binding=netTcpBinding的endpoint指定bindingConfiguration屬性=tcpBindingConfig,這樣這種綁定的消息會自動進行加密和解密。下載的示例demo中啟用了trace輸出,這樣可以通過service trace viewer工具查看D:\winform\WCF step by step\Chapter 5\Shore.cnblogs.com.WCFHost\app_tracelog.svclog(這個地址在你本機可能需要修改)這個文件來觀察消息是否真正的被加密了。
基本BasicHttpBinding綁定的消息加密需要證書,比較麻煩,但WSHttpBinding綁定的消息加密默認就會有消息加密功能,所以只要提供一個WSHttpBinding的endpoint就OK。
二、在傳輸通道級別保護一個HTTP服務(wù)
我提到過,傳輸通道的保護可以配置為https來增強保護,由于啟用https需要證書文件,比較麻煩。暫時不演示了,后面有時間再補充吧。
三、認證與授權(quán)
認證和授權(quán)是基本form驗證的一種有效方式,也是在web程序中用的最多的一種驗證方式。WCF對認證和授權(quán)有了很好的支持,這個主題也很廣泛,這里只是簡單演示服務(wù)器端怎么樣拿到客戶端的windows用戶名。
netTcpBinding綁定
string usrName = Thread.CurrentPrincipal.Identity.Name;
這樣WCF服務(wù)保護的操作就完成了。