2017-10-29 3 views
0

Ich habe einen WCF-Dienst erstellt und hostet ihn in der Konsolenanwendung. Ich habe 2 Client-Anwendungen, die mit diesem WCF-Dienst kommunizieren werden, jetzt möchte ich 3 Clients beschränken, um eine Verbindung zu diesem WCF-Dienst herzustellen.Beschränken Sie die Clientverbindung in WCF-Dienst

Gibt es eine Möglichkeit, die Verbindung auf der Serverseite für den dritten Client abzulehnen? Oder gibt es eine Möglichkeit, wie der Server die Verbindung validieren kann, bevor er mit Client erstellt?

Server-Side-Code

Uri httpBaseAddress = new Uri("net.pipe://localhost/ServiceHost/ServiceHost"); 
studentServiceHost.AddServiceEndpoint(typeof(StudentService.IStudentService), binding, httpBaseAddress); 
studentServiceHost.Open() 
+0

Ist die IP Ihres Clients statisch? –

+0

Ja, URL ist statisch, sowohl Service als auch Client läuft auf derselben Maschine – user3106005

+0

Die gleiche Maschine, dann wie Shiraz bhaiji schlug vor, Sie müssen Soap-Header verwenden. So können Sie einen Schlüssel übergeben und basierend auf Wert können Sie den Client unterscheiden. –

Antwort

1

Wenn Sie 3 Clients von Verbindung zu dem Dienst zur gleichen Zeit stoppen wollen Sie das maxConnections Attribut der Bindung verwenden können, um es zu 2.

Einstellung Wenn Sie möchten nur, dass bestimmte Clients auf Ihren Service zugreifen. Dann müssen Sie die Authentifizierung einrichten, siehe: WCF self hosting require authentication

+0

ja, tatsächlich, Microsoft Angriff Oberflächenanalyse-Tool erkannt meine Namedpipe als Sicherheitsrisiko und empfohlen "ACL muss anziehen", also möchte ich das vermeiden – user3106005

Verwandte Themen