Este posibil să accesați pagini web cu HTTPS și care necesită autentificare / parolă folosind Excel? Ei bine, da și nu. Iată afacerea și de ce nu este atât de direct înainte.
HTTPS este prin convenție identificatorul pentru ceea ce se numește SSL (Secure Sockets Layer). Chiar nu are nimic de-a face cu parole sau autentificări ca atare. Ceea ce face SSL este să configureze o conexiune criptată între un client web și server, astfel încât să nu fie trimise informații între cele două „în limpede” - folosind transmisii necriptate. Dacă informațiile includ informații de conectare și parolă, criptarea transmisiei le protejează de ochii indurați ... dar criptarea parolelor nu este o cerință. Am folosit expresia „prin convenție”, deoarece tehnologia reală de securitate este SSL. HTTPS semnalează numai serverului că clientul intenționează să folosească acel protocol. SSL poate fi utilizat într-o varietate de alte moduri.
Deci ... dacă computerul trimite o adresă URL către un server care folosește SSL și acea adresă URL începe cu HTTPS, computerul vă spune serverului:
"Hei, domnule Server, hai să dăm mâna peste acest lucru de criptare, astfel încât orice am spune de acum înainte să nu fie interceptat de un om rău. Și când se va termina, mergeți mai departe și trimiteți-mi pagina adresată de adresa URL."
Serverul va trimite înapoi informațiile cheie pentru configurarea unei conexiuni SSL. Depinde de computerul dvs. să efectuați ceva cu el.
Aceasta este „cheia” (punct ... bine, sortat intenționat) pentru a înțelege rolul VBA în Excel. Programarea în VBA ar trebui să facă efectiv următorul pas și să implementeze SSL pe partea de client.
Browser-urile „reale” fac asta automat și vă arată un mic simbol de blocare în linia de stare pentru a vă arăta că s-a făcut acest lucru. Dar dacă VBA deschide doar pagina web ca fișier și citește informațiile din ea în celule dintr-o foaie de calcul (un exemplu foarte obișnuit), Excel nu va face asta fără o programare suplimentară. Oferta grațioasă a serverului de a strânge mâinile și a configura o comunicare SSL sigură este ignorată doar de Excel.
Pentru a demonstra, să utilizăm conexiunea SSL care este folosită de serviciul Gmail al Google (care începe cu „https”) și să codăm un apel pentru a deschide conexiunea la fel cum a fost un fișier.
Aceasta citește pagina web ca și cum ar fi fost un fișier simplu. Deoarece versiunile recente de Excel vor importa HTML automat, după executarea instrucțiunii Open, pagina Gmail (minus obiectele HTML dinamice) este importată într-o foaie de calcul. Scopul conexiunilor SSL este schimbul de informații, nu doar citirea unei pagini web, deci, în mod normal, nu vă va duce foarte departe.
Pentru a face mai multe, trebuie să aveți, într-un fel, în programul dvs. Excel VBA, să suportați atât protocolul SSL, cât și poate să suportați și DHTML. Probabil că sunteți mai bine să începeți cu Visual Basic complet decât cu Excel VBA. Apoi folosiți controale precum API-ul de transfer Internet WinInet și apelați obiectele Excel după cum este necesar. Dar este posibil să folosiți WinInet direct dintr-un program Excel VBA.
WinInet este o API - Interfață de programare a aplicațiilor - pentru WinInet.dll. Este folosit în principal ca una dintre componentele majore ale Internet Explorer, dar îl puteți utiliza direct și din codul dvs. și îl puteți utiliza pentru HTTPS. Scrierea codului pentru a utiliza WinInet este cel puțin o sarcină de dificultate medie. În general, etapele implicate sunt:
Există două diferențe majore în scrierea codului WinInet pentru a utiliza https, mai degrabă decât HTTP obișnuit:
De asemenea, trebuie să țineți cont de faptul că funcția de schimb al unei date de conectare / parolă este în mod logic independentă de criptarea sesiunii cu https și SSL. Puteți face unul sau altul, sau ambele. În multe cazuri, merg împreună, dar nu întotdeauna. Iar implementarea cerințelor WinInet nu face nimic pentru a răspunde automat la o cerere de autentificare / parolă. Dacă, de exemplu, autentificarea și parola fac parte dintr-un formular web, atunci ar trebui să vă dați seama de numele câmpurilor și să actualizați câmpurile din Excel VBA înainte de a „posta” șirul de conectare pe server. Răspunsul corect la securitatea unui server web este o mare parte din ceea ce face un browser web. Pe de altă parte, dacă este necesară autentificarea SSL, puteți lua în considerare utilizarea obiectului InternetExplorer pentru a vă autentifica din VBA ...
Concluzia este că folosirea https și conectarea la un server dintr-un program Excel VBA este posibilă, dar nu vă așteptați să scrieți codul care o face în doar câteva minute.