Message Queuing

  • C#

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von LaMiy.

    Message Queuing

    Bei meinem aktuellen Vorhaben muss ich Datenpakete vom Client zum Server senden.
    Dabei kann der Client oftmals offline sein. Die bisher gesammelten Pakete sollen im Falle eine Internetverbindung dann alle geschickt werden.
    Hierzu soll sich die MessageQueue-Klasse eignen. msdn.microsoft.com/de-de/libra…ssagequeue(v=vs.110).aspx

    Hört sich auch alles gut an. Aber dazu zwei Fragen.
    Der Client soll im Netzwerk A liegen und der Server im Netzwerk B. Die Daten sollen also "über's Intenert" verschickt werden.
    Geht das hiermit? Meiner Meinung nach schon. (s.h. Arbeitsgruppenmodus: Remotecomputer Verfügbar: ja - msdn.microsoft.com/de-de/libra…queue.path(v=vs.110).aspx)

    Zweiter Aspekt: Sicherheit.
    Die Daten soll nicht unbedingt jeder lesen können.
    Meine Idee war die Pakete mit RSA zu verschlüsseln (und evt. zu signieren)
    Der Server gibt dem Client also seinen öffentlichen Schlüssel, der Client verschlüsselt die Nachricht damit und der Server entschlüsselt sie nach der Sendung mit seinem privaten Schlüssel.

    Hat jemand eine bessere Idee/glaubt dass dieses Vorhaben so in Ordnung ist?

    Grüße :)
    RSA-Signierung halte ich in diesem Fall nur für nötig, wenn Du prüfen willst, ob Daten verändert wurden. Kann man einbauen, um Manipulationen zu erkennen, jedoch ist halt die Frage, wie man drauf reagiert.
    Eventuell eignet sich/reicht auch HTTPS und nen Self-Signed-Certificate, um das vorzubeugen.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    LaMiy schrieb:

    Der Client soll im Netzwerk A liegen und der Server im Netzwerk B. Die Daten sollen also "über's Intenert" verschickt werden.
    Geht das hiermit? Meiner Meinung nach schon. (s.h. Arbeitsgruppenmodus: Remotecomputer Verfügbar: ja
    Im Arbeitsgruppenmodus müssen die Rechner im selben Netzwerk sein.
    Übers Interner musst du MSMQ über HTTPS verwenden.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    @petaod Danke das war sehr hilfreich.
    Also genügt es die besagten Sachen installiert zu haben und dann die MessageQueue irgendwie so zu instanziieren?
    ​MessageQueue mQueue = new MessageQueue(@"FormatName:DIRECT=HTTP://193.2.34.5/msmq/MyQueue");

    Das wäre natürlich hammer.
    Wie sieht es mit der Sicherheit aus. Ist da alles in Ordnung wenn ich mit RSA verschlüssel?
    Wenn du HTTPS statt HTTP verwendest, benötigst du RSA noch nicht mal zwingend.
    Das ist das, was @Trade im zweiten Post schon meinte.

    Über Router- und Firewall-Freischaltungen sowie DynDNS solltest du dir gegebenenfalls zuerst Gedanken machen, damit die Grundkonfiguration zum Laufen kommt.
    Wenn dann alles läuft, kannst du dir über erweiterte Verschlüsselung immer noch Gedanken machen.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --