2012-04-03 5 views
1

Ich habe eine öffentliche Desktop-Site, eine öffentliche mobile Site und eine private Intranet-Site auf demselben Server. Sie sind alle in C# (ASP.Net 4.0) geschrieben.Windows-Dienst oder Web-Service?

Jeder hat seinen eigenen Code, um Kreditkartenzahlungen zu verarbeiten. Ich möchte eine einzelne Anwendung schreiben, die Kreditkartenzahlungen für alle 3 Seiten behandelt. Ich möchte, dass diese Anwendung nur von diesen 3 lokalen Anwendungen aus zugänglich ist.

Der einzige Weg, ich weiß, wie dies zu tun ist, um einen Web-Service zu erstellen und den Datenverkehr auf den localhost zu beschränken.

Gibt es einen besseren ("richtigen") Weg, dies zu tun? Soll ich stattdessen einen Windows-Dienst erstellen?

+1

Klingt wie eine vernünftige Lösung für mich. – BluesRockAddict

Antwort

0

Der allgemeine Ansatz ist solide. Ich würde mich jedoch nicht nur darauf verlassen, dass der Zugriff auf localhost beschränkt ist. Eine einzelne Fehlkonfiguration zu einem späteren Zeitpunkt würde Ihren Zahlungs-Web-Service offenlegen. Wenn der Server kompromittiert ist, hat jeder Prozess, der auf diesem lokalen Host ausgeführt wird, einen unkontrollierten Zugriff.

Verwenden Sie immer eine Authentifizierung, um Ihren Zahlungsdienst zu sichern.

Wenn Sie den Authentifizierungsdienst auf derselben physischen Box wie die Front-End-Websites bereitstellen müssen, achten Sie besonders darauf, den Zahlungsdienst zu sichern (z. B. wenn Sie Kreditkartennummern oder PII für die Kreditkonten speichern. ... stellen Sie sicher, dass die Datenbank korrekt gesichert ist. Wenn möglich, platzieren Sie die Zahlungsdienste in einer zusätzlichen Ebene, die von den öffentlich zugänglichen (oder den Mitarbeitern zugewandten) Websites getrennt ist und durch geeignete Firewall-Regeln geschützt ist.

0

Ich glaube nicht, Windows-Dienst wäre eine gute Option, wenn Sie Anwendungen aufrufen. Soweit ich über WCF weiß, haben wir die Option für NetTcpBinding und NetNamedPipeBinding, die Sie berücksichtigen könnten.

NetTcpBinding - Eine sichere und zwischen WCF Anwendungen für die Maschinenquerkommunikation Bindung geeignet optimiert.

NetNamedPipeBinding - Eine sichere, zuverlässige, optimierte Bindung, die sich für die Kommunikation zwischen WCF-Anwendungen zwischen Maschinen eignet.