WS-Security mit der ASMX-Datei in ASP.NET 3.5
Grundsätzlich, ich brauche, um das setup meinen ASMX-Datei, so dass, wenn ich nach oben ziehen, in einem browser zur Anzeige des WebMethod-Spezifikation der Soap-Header entspricht diesem format:
<soap:Header>
<wsse:Security>
<wsse:UsernameToken wsu:Id='SecurityToken-securityToken'>
<wsse:Username>Username</wsse:Username>
<wsse:Password>Password</wsse:Password>
<wsu:Created>Timestamp</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</soap:Header>
Zurück-Geschichte: ich bin die Integration mit einer client-Anwendung, die ist schon gebaut und im Besitz von anderen Unternehmen). Im Grunde ist dieser client-Anwendung bereits Ihre soap-Nachrichten, die alle aus seiner Vergangenheit Integrationen mit anderen Unternehmen. So haben wir uns entschieden zu bauen, ein web service mit einer ASMX-Datei, die entspricht der WSDL, dass Sie bereits setup zu konsumieren.
Ist es möglich die WS-Security arbeitet an einem ASMX-Datei oder ASMX zu simpel und ich habe ein upgrade auf WFC (die ich wirklich nicht wollen, zu tun)?
InformationsquelleAutor Adam | 2010-03-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Implementieren Sie einen SOAP /WS-Security-service mit klassischen web services. Hier ist ein tutorial von MSDN.
All dies ist wesentlich einfacher in der WCF obwohl.
EDIT:
Zog der falsche link. Hier ist die eine Ich meinte einfügen (CodeProject tutorial, verwendet der WSE-2, obwohl WSE 3 ist die neueste Version und ich verwendet haben, die ausschließlich pre-WCF).
Du hast Recht und du hast Unrecht. Ich habe ziehen den falschen link aus meinen Lesezeichen (aktualisiert post). Du bist falsch bei der Angabe, dass legacy ASMX kann keine Unterstützung für WS-Security (siehe link aktualisiert).
InformationsquelleAutor Eric J.
Ja, es ist möglich, mit Web Services Enhancements 3 (ein add-on für Visual Studio 2005 und ASMX). Sehen Sie diese MSDN-Seite für eine WSE-3-spezifischen tutorial und verwenden Sie die
usernameOverTransportSecurity
Behauptung, Feststellung, dass dies nicht eigentlich sicher, es sei denn, die Verbindung erfolgt über einen geschützten transport (z.B. SSL).Ist es jedoch, nicht empfohlen, dass Sie dies tun, und ich kann nicht ergründen, warum Sie "nicht wollen" zu "upgrade auf WCF" vor die Wahl. Bitte beachten Sie die folgenden sehr wichtigen Einschränkungen von ASMX/WSE:
WSE ist nicht länger ein unterstützt Produkt. Obwohl es noch funktioniert, es nicht länger updates erhält oder auch bug-fixes.
Keine version von WSE wird die erfolgreiche Integration in Visual Studio 2008, oder sogar Visual Studio 2005 unter Windows Vista x64 oder neuer.
WCF geht um eine Menge ärger zu liefern " thread-safe-client-Operationen und ermöglichen proxies existieren für lange Zeiträume (die wiederum zu erheblichen pro-Betrieb performance-Vorteile). WSE-proxies, auf der anderen Seite sind Einweg-nicht Thread-sichere Objekte, die entstehen, eine setup-Zeit mit jeder remote method invocation (auch bei der Verwendung von Sicheren Gespräch). Das macht Sie auch weitgehend ungeeignet für Dependency Injection und viele andere weit verbreitete Muster.
Dies sind nur einige der Gründe, warum Sie sollte nicht verwenden WSE mehr. Die Gründe, warum Sie sollte verwenden WCF auf der client-Seite sind vielfältig, einschließlich, aber nicht beschränkt auf die Trennung von Modell und proxies, Verbrauch von REST-basierten services und einen besseren Umgang mit collection-Typen.
Es sei denn, Sie wirklich muss weiterhin verwenden, ASMX, bitte überdenken Sie Ihre Weigerung sich zu bewegen, um WCF - es sei denn, der Dienst bietet eine Menge ungewöhnlicher Dinge, die mit XML-Serialisierung, es dauert nicht mehr als 5 Minuten für den Wechsel.
Es sollte nur so einfach. Wir verwenden nicht die VS "veröffentlichen" - Befehl, aber unsere Implementierung ist in der Regel nur eine Dateikopie. Vielleicht hat jemand sagte, es war ein Schmerz zu implementieren, weil die .NET 3.5 Framework dauert eine lange Zeit zu installieren, wenn der server nicht bereits haben?
Sie müssen auch lernen, "West Coast Main line geprüft", oder besser bekannt als "WCF-Konfiguration Markup Language". Verbringen Sie Ihre Stunden starrte mit leerem Blick auf Konfigurations-Dateien mit dem ga-zig Optionen. Für die ersten paar Tage nichts mehr geht, dann durch Magie, eine geänderte Einstellung macht das verdammte Ding funktioniert. Sie setzen Fett Warnungen in der config-Datei Kommentare, um andere zu warnen, nie, NIE berühren Sie die Datei erneut auf den Schmerz des Todes. Ansonsten WCF ist ein Kinderspiel. Gehen Sie für es. 🙂
Ich Schätze dies ist ein späten Kommentar, aber nachdem ich gerade versucht zu bekommen eine WSE-style WS-security ASMX service arbeiten im WCF, es sei denn, ich bin fehlt eine trick - es ist die am meisten komplizierten und err schwierige Sache überhaupt. So sehr habe ich aufgegeben, da es keine nützlichen Fehler, mir zu helfen, es funktioniert. Alle helfen natürlich begrüßt, obwohl, wie viel lieber würde ich es verwenden. Mein größtes problem ist nicht der Suche nach einer anständigen Dokumentation im web wie man es benutzt!
Es gibt viel der Hilfe auf dem web; starten hier. Wenn das nicht für Sie arbeiten, sollten Sie beginnen, eine Frage zu erklären, was du versucht hast und was nicht funktioniert (was Fehler, die Sie erhalten, etc.)
InformationsquelleAutor Aaronaught
Nein, legacy ASMX web services nicht unterstützt WS-Security oder jede andere WS -* - standards.
Da Microsoft nun der Auffassung, ASMX web services "legacy-Technologie", sollten Sie tun diese Arbeit mit WCF.
Andere Antwort schlägt mit WSE. Dies ist noch weniger eine Lösung. WSE ist flat-out obsolet und sollte nur als letztes Mittel eingesetzt.
InformationsquelleAutor John Saunders