C# Authentifizierung bei Named Pipes

Magic1416

Lieutenant
Registriert
Dez. 2003
Beiträge
530
Hi,

ich habe eine für mich passable Lösung für Named Pipes auf CodeProject gefunden.
http://www.codeproject.com/Articles/864679/Creating-a-Server-Using-Named-Pipes

Diese habe ich für meine Zwecke noch etwas modifizieren müssen sodass meine persönlichen Anforderungen erfüllt sind. Unteranderem ist es Aufgabe, Messages zwischen zwei Computern hin und herzusenden. Zwischen zwei Domänen Computern funktioniert das auch. Zwischen Computern einer Workergroup nur mit einem Trick den ich sehr "unsexy" finde.

Ich muss mir dort ein Laufwerk mappen und meine Credentials angeben. Erst dann funktioniert der Zugriff über Named Pipes.
(Zur Info: Username und PW sind auf beiden Computern identisch angelegt und haben Adminrechte)

Über die Klasse NamedPipeClientStream kann ich mich nicht authentifizeren sonderen nur einen ImpersonationLevel angeben.

Mit welcher Lösung kann ich mich denn sinnvoll im Vorfeld über meine Anwendung authentifizieren, sodass das die Named Pipes funktionieren ?

Danke Gruß Magic
 
Ich denke das ist schon korrekt so, da eine Named Pipe nach meinem Wissen wie ein Filezugriff funktioniert. Das heißt man braucht eine gemeinsame File Resource wie ein Netzlaufwerk auf das beide PCs Zugriff haben.

Evtl. solltest Du drüber nachdenken, ob eine Named Pipe das richtige Konstrukt für eine rechnerübergreifende Kommunikation ist. Evtl. sind Sockets oder ein Framework wie WCF besser geeignet, da hast Du dann auch die Authentifizierungsmöglichkeiten konfigurierbar.
 
@Drexel

ich habe für das Workergroup Problem noch eine Idee die möglicherweise funktionieren könnte. Ich nehme die beiden Computer in eine HeimNetzgruppe auf. Außerdem habe ich gesehen, dass der NamedPipeServer auch ein Objekt PipeSecurity anbietet. Dort kann man dann ACLs hinterlegen. Wenn man dann dort die Gruppe der HomeNetWork User hinzufügt, sollte es dann eigentlich gewesen sein.

Ansonsten schau ich mir das Thema Sockets genauer an. Habe schon ein Beispiel gefunden. Vom Code Aufbau her ist das nicht so viel anders wie mit Named Pipes.

Im Prinzip schicke ich ja nur strings hin und her.

Ich möchte nämlich mein Surface 3 als Hot Key Panel verwenden. d.h. auf dem Touch sind ne Menge Buttons mit Hotkeys hinterlegt. Diese werden an meinen Desktop als String gesendet (zb. "LCtrl + L"). Die Serveranwendung nimmt den String entgegen und sendet ihn über die WinApi Funktion SendInput an das aktive Fenster.
 
Zurück
Oben