2 Stimmen

Wie spricht man SSL von einem Windows MFC-Client?

Ich habe eine MFC-Anwendung, die derzeit CAtlHttpClient verwendet, um einen Webserver nach Informationen abzufragen.

Ich möchte dies so ändern, dass die Abfrage sicher über Serverauthentifizierung mit SSL erfolgt.

Ein Google-Suche zeigt, dass Microsoft die Art und Weise, wie sie dies unterstützen, mehrmals geändert hat, z. B. WinInet, WinHTTP, aber ich kann einfach nicht herausfinden, wie ich dies mit MFC unter MSVS 2005 machen soll.

Die Anwendung ist in C++, und wenn möglich, würde ich gerne vermeiden, .Net ins Spiel zu bringen.

Jede Hilfe, Hinweise, Vorschläge oder Anhaltspunkte sind dankbar willkommen!

Vielen Dank,

ony

4voto

Rob Punkte 72944

Sie könnten sich Ultimate TCP/IP ansehen - es ist MS-freundlich und könnte das tun, was Sie suchen:

http://www.codeproject.com/KB/MFC/UltimateTCPIP.aspx

Ich benutze dieses Toolkit und es ist sehr gut.

0 Stimmen

Danke für den Hinweis - sieht aus wie ein nützliches Toolkit, obwohl vielleicht etwas überdimensioniert für mein Projekt. Außerdem ist die Lizenz "The Code Project Open License (CPOL) 1.02", die nicht zu den von der OSI genehmigten Lizenzen in opensource.org/licenses gehört. Rony

0 Stimmen

...Was ist also, also ist es in Ordnung, MFC zu verwenden, aber eine kostenlose Lizenz, die nicht 'OSI-zugelassen' ist, nicht? Und weil es nicht genau das tut, was Sie brauchen, sondern ein bisschen mehr, ist es 'übertrieben'? Wenn Ihnen die Antworten nicht gefallen, stellen Sie die Frage nicht...

0 Stimmen

Die Schönheit von Ultimate TCP/IP liegt darin, dass du nur die Teile kompilieren musst, die du möchtest - in diesem Fall nur die HTTPS-Unterstützung - meiner bescheidenen Meinung nach fast ohne Übertreibung.

2voto

Len Holgate Punkte 20590

Im Jahr 2002 schrieb ich einen Artikel für das Windows Developer Magazine, der zeigte, wie man OpenSSL verwenden kann, um SSL für MFC's CAsyncSocket bereitzustellen. Der Code und der Artikel sind hier: http://www.serverframework.com/asynchronousevents/2010/10/using-openssl-with-asynchronous-sockets.html und könnten Ihnen helfen. Sie könnten auch etwas Ähnliches mit Microsoft's SChannel machen, aber es ist etwas komplizierter, da OpenSSL einige der Pufferung für Sie übernimmt, sodass Sie nur Bytes hineinschieben müssen, bis Sie Klartext erhalten...

0 Stimmen

Vielen Dank - schöner Artikel! Ich würde eine Lösung bevorzugen, die es mir ermöglicht, auf Microsofts Code zurückzugreifen, anstatt OpenSSL einzubeziehen. SChannels scheinen ein bisschen zu niedrigstufig zu sein... Nochmals vielen Dank. Rony

2voto

ronys Punkte 508

Ich habe einen Verweis auf einige Microsoft-Beispielcode gefunden, der passen könnte: http://msdn.microsoft.com/en-us/library/s2ya483s(VS.80).aspx

Allerdings schlägt dies bei AcquireCredentialsHandle fehl, was meine nächste Frage an dieses ehrenwürdige Forum sein wird...

1voto

Verwenden Sie einfach WinHttp. Es ist eine großartige API und hat alles, was Sie brauchen, um SSL über HTTP zu machen (und funktioniert mit der Proxy-Konfiguration von Vista nach vorne)

0 Stimmen

SSL in WinHTTP, msdn.microsoft.com/en-us/library/windows/desktop/… erklärt die Grundlagen von SSL mit WinHTTP und die Verwendung von Zertifikaten.

0voto

jussij Punkte 10221

Was ist mit der Verwendung der libeay32.dll und ssleay32.dll Dateien, die Teil von OpenSSL sind?

https://code.google.com/p/openssl-for-windows/

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X