BasichttpBinding vs WSHttpBinding von WCF

8

Ich möchte Kundendaten mit Serverdaten aktualisieren und umgekehrt. Derzeit verwende ich BasicHttpBinding, das schneller ist als wsHttpBinding. Mein Anspruch ist es zu erreichen:

  • Schnelle Datenkommunikation
  • Sichere Kommunikation

Zwei Bindungen sind in diesem Szenario BasicHttpBinding und wsHttpBinding geeignet. Also welche Bindung sollte ich verwenden? und Was ist der Unterschied zwischen BasicHttp und wsHttp Bindung?

    
Jeevan Bhatt 04.10.2010, 04:25
quelle

3 Antworten

16

Wenn Sie Sicherheit brauchen, verwenden Sie wsHttpBinding . Es implementiert alle verschiedenen Sicherheitsfunktionen wie Nachrichten- oder Transportsicherheit, als Windows-Anmeldeinformationen angegebene Clientanmeldeinformationen, Benutzername / Kennwort oder Zertifikat. Es unterstützt zuverlässiges Messaging und vieles mehr - eine ganze Reihe von WS * Standards.

BasicHttpBinding ist genau das - sehr, sehr einfach. Es ist mehr oder weniger ASMX Web Services - so ziemlich keine Einstellungen, keine Sicherheit (außer über HTTPS geroutet).

Wenn Sie schnell brauchen, verwenden Sie netTcpBinding - aber das funktioniert nicht gut über Internetverbindungen. Wenn das nicht funktioniert, verwende basicHttpBinding - es ist schneller, schlanker, weniger Overhead als wsHttpBinding .

Sie sind also zurück zum klassischen Trade-Off: Sie können schnell oder sicher sein - wählen Sie einen aus. Es gibt keinen "magischen" Weg, beides gleichzeitig zu haben - Sicherheit fügt Overhead hinzu und verlangsamt so die Dinge. Was ist wichtiger für Sie: sichere Kommunikation oder schnelle Kommunikation?

    
marc_s 04.10.2010, 04:48
quelle
6

wsHTttpBinding implementiert den WS-Sicherheitsstandard für die Web-Services-Kommunikation. Ich glaube jedoch, dass HTTPS Ihnen ausreichende Sicherheit bieten wird, wenn Sie basicHttpBinding verwenden.

Sie sollten auch bedenken, dass wsHttpBinding Ihre Interoperabilität einschränkt, da wsHttpBinding nur mit Clients kompatibel ist, die WS- * (SOAP 1.2) unterstützen.

Meiner Meinung nach würde ich bei basicHttpBinding bleiben, es sei denn, es gibt bestimmte WS-* Standardfunktionen, die Sie benötigen. In Bezug auf WS-Sicherheit sind die Funktionen, die es bietet, Dinge wie Verschlüsselung auf Nachrichtenebene (abgesehen von der Verschlüsselung auf Transportebene, die HTTPS bietet). Für mich stellt die Transportverschlüsselung sicher, dass Ihre Nachricht verschlüsselt wird, wenn sie über die Leitung übertragen wird. Der einzige Vorteil der Verschlüsselung auf Nachrichtenebene besteht nicht darin, Sicherheit auf Transportebene zu verwenden, sondern nur eine leichtere Verschlüsselung in bestimmten Bereichen der Nachricht. p>

Hier ist eine Liste von WS-Spezifikationen von wikipedia zu Ihrer Information:

Ссылка

    
husainnz 06.10.2010 01:02
quelle
2

Normalerweise empfehlen wir einen schnellen sicheren Transport wie SSL für die Sicherheit. Dies liegt daran, dass jede Art von Sicherheit auf Nachrichtenebene beim Verschlüsseln / Signieren CPU-intensiv ist.

SO können Sie einfach grundlegende HTTP-Bindung mit Transportsicherheit für die meisten Szenarien ohne zu viel von Kompromiss in Perf verwenden.

Wenn Sie keine der reichhaltigeren WS * -Protokolle oder -Sitzungen usw. verwenden, können Sie die grundlegende HTTP-Bindung beibehalten.

    
Sajay 07.10.2010 21:39
quelle

Tags und Links