2010-10-04 19 views
8

Quiero actualizar los datos del cliente con los datos del servidor y viceversa. Actualmente estoy usando BasicHttpBinding, que es más rápido que wsHttpBinding. Mi requirnment es achive:BasichttpBinding vs WSHttpBinding de WCF

  • comunicación de datos rápida
  • Comunicación segura

Dos unión es adecuada en este escenario y BasicHttpBinding wsHttpBinding. Entonces, ¿qué enlace debo usar? y ¿Cuál es la diferencia entre BasicHttp y wsHttp vinculante?

Respuesta

16

Si necesita seguridad, use wsHttpBinding. Implementa todas las diversas características de seguridad, como seguridad de mensajes o transporte, credenciales del cliente proporcionadas como credenciales de Windows, nombre de usuario/contraseña o certificado. Admite mensajería confiable y mucho más: una gran cantidad de estándares WS *.

BasicHttpBinding es solo eso, muy, muy básico. Se trata más o menos de servicios web ASMX: prácticamente no tiene configuraciones ni seguridad (aparte de ser enrutado a través de HTTPS).

Si necesita rápido, use netTcpBinding - pero eso no funciona bien con las conexiones a internet. Si eso no funciona, use basicHttpBinding - es más rápido, más delgado, menos sobrecarga que wsHttpBinding.

Ha vuelto al clásico trade-off: puede tenerlo rápido o seguro: elija uno. No existe una forma "mágica" de tener ambas cosas al mismo tiempo: la seguridad agrega sobrecarga y, por lo tanto, ralentiza las cosas. ¿Qué es más importante para usted: comunicaciones seguras o comunicaciones rápidas?

+1

la seguridad es más importante para mí.podemos implementar ssl con basicHttpBinding o solo wsHttpbinding es compatible con seguridad. Si podemos usar ssl con basicHttpBinding, entonces, ¿cuál será la diferencia de rendimiento significativa en Basic Btt y wsHttp Bindings? –

+0

¿Es posible implementar 'WSHttpBinding sin SSL o https: //'? –

+0

@MuraliMurugesan: Probablemente sea muy tarde, pero para cualquier otra persona que lea esto: Sí, es posible: simplemente use el Modo de seguridad: 'Mensaje'. Message Security proporciona seguridad independiente del transporte de extremo a extremo. –

6

wsHTttpBinding implementa el estándar WS-Security para la comunicación de servicios web, sin embargo, creo que HTTPS le proporcionará suficiente seguridad si utiliza basicHttpBinding.

También debe tener en cuenta que wsHttpBinding restringe su interoperabilidad, ya que wsHttpBinding solo es compatible con clientes que son compatibles con WS- * (SOAP 1.2).

En mi opinión, me quedaría con basicHttpBinding a menos que haya características estándar específicas de WS- * que necesite. En términos de WS-Security, las características que ofrece son cosas como el cifrado de nivel de mensaje (más allá del cifrado de nivel de transporte que proporciona HTTPS). Para mí, el cifrado de transporte garantiza que su mensaje esté encriptado cuando se transmite por cable, el único beneficio de tener cifrado a nivel de mensaje no es la sobrecarga de usar seguridad de nivel de transporte, sino solo un cifrado más liviano en áreas específicas del mensaje.

He aquí una lista de las especificaciones de WS de Wikipedia para su información:

http://en.wikipedia.org/wiki/List_of_Web_service_specifications

+0

La seguridad del transporte puede ser beneficiosa cuando se sabe que la comunicación no se realiza a través de un canal seguro de punto a punto. Cuando un cliente envía mensajes a un servicio y el mensaje se enruta a través de intermediarios, no siempre se puede garantizar la seguridad del transporte, y la seguridad a nivel de mensaje se convierte en una opción útil. – BitMask777

2

Por lo general, recomendamos un transporte rápido como seguro SSL para la seguridad. Esto se debe a que cualquier tipo de seguridad de nivel de mensaje requiere mucha CPU en cifrado/firma.

ASÍ PUEDES SOLO USAR ENLACES HTTP BÁSICOS CON SEGURIDAD DE TRANSPORTE PARA LA MAYORÍA DE LOS ESCENARIOS SIN EXCESO DE COMPENSACIÓN EN PERF.

Si no está utilizando ninguno de los protocolos o sesiones WS * más ricos, entonces puede seguir con el enlace HTTP básico.

Cuestiones relacionadas