我想在传输级别保护WCF服务,但阅读本文后发现它适用于Intranet场景:http://msdn.microsoft.com/en-us/library/ff648863.aspx
"在以下情况下使用传输安全:
您将直接从应用程序向WCF发送消息服务和消息将不会通过中间路由系统。服务和客户端都位于内部网中。"
对于互联网场景,应该使用消息安全方法吗?
"您的WCF客户端正在通过Internet访问WCF服务,并且消息可以通过中间系统进行路由。"
请告诉我传输安全是否只适用于intranet场景?
您可以对internet上的服务使用Transport
级别的安全性。Message
级安全性通常是推荐的,因为它提供了更高级别的安全性。Message
级别提供端到端安全性,而Transport
级别仅提供点对点安全性,但这并不意味着没有Message
安全性就无法创建安全的WCF服务。
甚至在某些情况下,互联网上的Message
安全性是一个糟糕的选择,例如流式传输大数据。使用Message
安全性,您不能以块形式流式传输数据,因为当设置消息安全性时,WCF将在传输之前将所有消息缓冲到内存中。这可能会导致可扩展性问题。
您可以通过使用安全HTTP(HTTPS协议)在互联网上使用Transport
安全性来保护WCF服务。在服务器计算机上安装证书,将证书绑定到服务器计算机上的指定端口,SSL将提供安全性。
但我总是在互联网场景中使用Message
安全性——除非情况不允许,就像上面的大数据场景一样。