SLL + WinInet

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Medved_
Новичок
Новичок
Аватара пользователя
 
Сообщения: 48
Зарегистрирован: 27.10.2005 (Чт) 11:12
Откуда: E-burg

SLL + WinInet

Сообщение Medved_ » 27.09.2006 (Ср) 14:00

Есть сертификат открытого ключа.

есть желание связаться с сервером по WinInet (сейчас все на WinHTTP сделано), что бы показывать прогресс закачки файлов (в WinHTTP - увы - я просто жду время до полного получения файла).

А у клиента еще м.б. и плохой канал связи - надо докачку организовать. если получится.

В общем, воспользовавшись вот этой ссылкой организовал выход на HTTPS (судя по логам - все правильно)

Но вот дальше - надо указывать как-то сертификат - где искать - не знаю (в WinHTTP вызывал SetClientCertificate - и все ОКи...).
Думал, что надо копать в сторону InternetSetOption ? Правильно?

Прошу помощи - как оно делается-то?

ЗЫ: MSDN - читаю до дыр, WinAPI - то ж. По форуму искал. Токо вот ничего не нашол и что-то недопонимаю...
With the BEST regards,
Medved.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 27.09.2006 (Ср) 14:11

а разве нельзя заюзать MSXML2.ServerXMLHTTP40, в нем можно открывать ассинхронно

Medved_
Новичок
Новичок
Аватара пользователя
 
Сообщения: 48
Зарегистрирован: 27.10.2005 (Чт) 11:12
Откуда: E-burg

Сообщение Medved_ » 27.09.2006 (Ср) 14:37

не знаю. А чем плох WinInet ?

где про это MSXML2.ServerXMLHTTP40 можно почитать?
With the BEST regards,
Medved.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 27.09.2006 (Ср) 14:39

можно скачать с мелкософта MSXML SDK, а с ним будет описание CHM, в нем достаточно подробно все расписано с примерчиками, но можно просто в MSDN поглядеть. Прямо по ключевому слову ServerXMLHTTP40

Medved_
Новичок
Новичок
Аватара пользователя
 
Сообщения: 48
Зарегистрирован: 27.10.2005 (Чт) 11:12
Откуда: E-burg

Сообщение Medved_ » 27.09.2006 (Ср) 14:55

оки.
лезу смотреть
With the BEST regards,
Medved.

Medved_
Новичок
Новичок
Аватара пользователя
 
Сообщения: 48
Зарегистрирован: 27.10.2005 (Чт) 11:12
Откуда: E-burg

Сообщение Medved_ » 27.09.2006 (Ср) 15:01

ServerXMLHTTP40 for VB6 to .NET? - MSDN Forums
ServerXMLHTTP40 for VB6 to .NET? Thread Starter: mike_ca Started: 30 May 2006 9:33 PM UTC Replies: 0 ...
forums.microsoft.com/MSDN/ShowPost.aspx?PostID=437720&SiteID=1

MSXML 4.0 GUIDs and ProgIDs
CLSID_ServerXMLHTTP40 {88d969c6-f192-11d4-a65f-0040963251e5} Msxml2.ServerXMLHTTP.4.0. CLSID_XMLHTTP40 {88d969c5-f192-11d4-a65f-0040963251e5} Msxml2.XMLHTTP.4.0
windowssdk.msdn.microsoft.com/en-us/library/ms754671.aspx

INFO: MSXML 4.0 Specific GUIDs and ProgIDs
CLSID_ServerXMLHTTP40 {88d969c6-f192-11d4-a65f-0040963251e5} Msxml2.ServerXMLHTTP.4.0: CLSID_XMLHTTP40 {88d969c5-f192-11d4-a65f-0040963251e5} Msxml2.XMLHTTP.4.0
support.microsoft.com/kb/305019

MSXML 4.0 GUIDs and ProgIDs
CLSID_ServerXMLHTTP40 {88d969c6-f192-11d4-a65f-0040963251e5} Msxml2.ServerXMLHTTP.4.0. CLSID_XMLHTTP40 {88d969c5-f192-11d4-a65f-0040963251e5} Msxml2.XMLHTTP.4.0
msdn.microsoft.com/library/en-us/xmlsdk/html/2418d1fd-4fa0-405e-8a73-b2d71b02d2ae.asp


все что я вижу... :( на форуме MS - вообще ничего нет - так. вопрос просто задан :(
With the BEST regards,
Medved.

Medved_
Новичок
Новичок
Аватара пользователя
 
Сообщения: 48
Зарегистрирован: 27.10.2005 (Чт) 11:12
Откуда: E-burg

Сообщение Medved_ » 27.09.2006 (Ср) 16:01

Из MSDN:

INTERNET_OPTION_CLIENT_CERT_CONTEXT
84
This flag is not supported by InternetQueryOption. The lpBuffer parameter must be a pointer to a CERT CONTEXT structure and not a pointer to a CERT CONTEXT pointer. If an application receives ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED , it must call InternetErrorDlg or use InternetSetOption to supply a certificate before retrying the request. CertDuplicateCertificateContext is then called so that the certificate context passed can be independently released by the application.

Ставлю:
Код: Выделить всё
InternetSetOption(hInternetConnect, _
        INTERNET_OPTION_CLIENT_CERT_CONTEXT, _
        oFindCert_, _
        LenB(oFindCert_))

где oFindCert_ - функция, возвращающая нужный сертификат.

при трассировке на InternetSetOption возникает сообщение "Object doesn`t support this property or method" и, посему, получается, что надо отлавливать Эвент по ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED и вызывать InternetErrorDlg - а это меня не устраивает, ибо сертификат я знаю заранее...

что, блин, тут я делаю неправильно?
With the BEST regards,
Medved.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 27.09.2006 (Ср) 16:12


Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 27.09.2006 (Ср) 16:15


Medved_
Новичок
Новичок
Аватара пользователя
 
Сообщения: 48
Зарегистрирован: 27.10.2005 (Чт) 11:12
Откуда: E-burg

Сообщение Medved_ » 27.09.2006 (Ср) 20:44

Спасибо, конечно, но (!) при отсутствии MSXML2.ServerXMLHTTP40 на машине клиента мне придется его вставлять в инсталлятор к распространению.

А ни условий, ни возможности распространять его - я не знаю. Это раз.

Второе - хотелось бы обойтись какими-то стандартными вещами или такими, которые обновляются вне зависимости от меня. Например, с системой или при обновлении како-го либо системного компонента (как WinHTTP или WinInet dll`s)
With the BEST regards,
Medved.

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Сообщение NashRus » 27.09.2006 (Ср) 21:44

если есть WinHTTP то есть и MSXML2 - только смотри какая версия.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 95

    TopList