WCF学习点滴四
经常被问到Web Service与WCF有啥异同点。
就安全机制来说,认证方式就大不一样。
Web Servcie调用认证需要在SOAP头信息里加入用户名\口令信息,通常的做法是继承一个SoapHeader。每调用一次都要把用户名、口令传到服务端验证,效率低,代码烦,不安全。
WCF就牛B多了,支持多种认证技术:Windows认证、X509证书、Issued Tokens、用户名密码认证等。
最近手上项目由于有跨域可能,选用户名密码认证方式,为了偷懒采用MemberShip机制来做。要实现用户名密码认证,就必须要X509证书(这点很重要)。它的作用就是保证传输过程中的加密解密,不然被人偷窥到用户名口令就惨了。
X509证书,摘自网上解释:X509证书这种非对称密钥技术来实现WCF在Message传递过程中的加密和解密,客户端把用户名和密码用公钥加密后传递给服务器端,服务器端再用自己的私钥来解密,然后传递给相应的验证程序来实现身份验证。
可用下面命令生成一个测试用的证书:
makecert.exe -sr LocalMachine -ss My -a sha1 -n CN=MyServerCert -sky exchange –pe
参考文献