Elérhetőek-e a HTTPS-sel rendelkező weboldalak, amelyek bejelentkezéshez / jelszóhoz szükségesek az Excel segítségével? Nos, igen és nem. Itt van az üzlet, és miért nem olyan egyértelmű.
Először határozzuk meg a feltételeket
A HTTPS az egyezményesen az SSL (Secure Sockets Layer) nevű azonosító. Ennek semmi köze sincs a jelszavakhoz vagy a bejelentkezésekhez. Az SSL titkosított kapcsolatot létesít egy webes ügyfél és a szerver között úgy, hogy nem kerül információ továbbításra a kettő között "egyértelműen" - titkosítatlan átvitel segítségével. Ha az információk tartalmaznak bejelentkezési és jelszóinformációkat, akkor az átvitel titkosítása megóvja őket a kíváncsiságtól... de a jelszavak titkosítása nem követelmény. Az "egyezmény szerint" kifejezést használtam, mert az igazi biztonsági technológia az SSL. A HTTPS csak azt a szervert jelzi, amelyet az ügyfél tervez az adott protokoll használatára. Az SSL számos más módon is használható.
Tehát... ha a számítógépe URL-t küld egy olyan kiszolgálóra, amely SSL-t használ, és az URL a HTTPS-vel kezdődik, akkor a számítógép azt mondja:
"Hé, szerver úr, keressük át a titkosítási ügyet, hogy bármit is mondjunk, az nem zavarja meg valami rossz fiú. És amikor ez kész, folytassa, és küldje el nekem az URL címmel ellátott oldalt. "
A szerver vissza fogja küldeni a legfontosabb információkat az SSL kapcsolat létrehozásához. A számítógép feladata, hogy valójában tegyen valamit vele.
Ez "kulcs" (pont... jó, sorta szánták) a szerepének megértéséhez VBA Excelben. A VBA-ban történő programozásnak valójában meg kell tennie a következő lépést, és az SSL-t az ügyféloldalon be kell vezetnie.
A „valódi” böngészők ezt automatikusan megteszik, és egy kis zárjelzést mutatnak az állapotsorban, hogy megmutatják, hogy megtörtént. De ha a VBA csak megnyitja a weboldalt fájlként, és a benne található információkat egy táblázatban cellákba olvassa (nagyon általános példa), az Excel ezt nem fogja elvégezni további kiegészítő programozás nélkül. Az Excel figyelmen kívül hagyja a kiszolgáló irgalmas ajánlatát, hogy kezet rázson és biztonságos SSL kommunikációt hozzon létre.
De pontosan ugyanúgy el tudja olvasni a kért oldalt
Ennek bizonyításához használjuk az SSL kapcsolatot, amelyet a Google Gmail szolgáltatása használ (amely "https" -vel kezdődik), és kódoljuk a hívást a kapcsolat megnyitásához, akárcsak egy fájl.
Ez úgy olvassa a weboldalt, mintha egyszerű fájl lenne. Mivel az Excel legújabb verziói automatikusan importálják a HTML-t, az Open utasítás végrehajtása után a Gmail oldalt (levonva a dinamikus HTML objektumokat) egy táblázatba importáljuk. Az SSL kapcsolatok célja az információcsere, nem csak a weboldalak olvasása, így ez általában nem jut el messze.
Ha többet szeretne elérni, akkor az Excel VBA programjában valamilyen módon támogatnia kell az SSL protokollt és esetleg a DHTML-t is. Valószínűleg jobb, ha a teljesnel kezdted Visual Basic az Excel VBA helyett. Ezután használjon vezérlőket, mint például az Internet Transfer API WinInet, és szükség szerint hívja meg az Excel objektumokat. De a WinInet közvetlenül használható egy Excel VBA programból is.
A WinInet egy API - alkalmazásprogramozási felület - a WinInet.dll fájlhoz. Elsősorban az Internet Explorer egyik fő összetevőjeként használják, de közvetlenül a kódjából is felhasználhatja, és HTTPS-re is felhasználhatja. A kód WinInet használatához történő írása legalább közepes nehézségű feladat. Általában az érintett lépések a következők:
- Csatlakozzon a HTTPS szerverhez, és küldjön HTTPS kérést
- Ha a kiszolgáló aláírt kliens igazolást kér, akkor a tanúsítási környezet csatolása után küldje el újra a kérést
- Ha a szerver elégedett, a munkamenet hitelesítve van
Két nagy különbség van abban, hogy a WinInet kódot a szokásos HTTP helyett a https használja:
Azt is szem előtt kell tartania, hogy a bejelentkezés / jelszó cseréje logikailag független attól, hogy a munkamenetet a https és az SSL segítségével titkosítja-e. Megteheted az egyiket vagy a másikot, vagy mindkettőt. Sok esetben együtt járnak, de nem mindig. A WinInet követelmények végrehajtása semmit sem jelent, hogy automatikusan válaszoljon a bejelentkezési / jelszó kérésre. Ha például a bejelentkezés és a jelszó egy webes űrlap része, akkor előfordulhat, hogy kitalálnia kell a a mezők nevét, és frissítse a mezőket az Excel VBA alkalmazásból, mielőtt a bejelentkezési karakterláncot "elküldi" a szerver. A webszerver biztonságára adott helyes válaszadás nagy része annak, amit a webböngésző tesz. Másrészt, ha SSL hitelesítésre van szükség, akkor fontolóra veheti az InternetExplorer objektum használatát a VBA-n belüli bejelentkezéshez ...
A lényeg az, hogy a https használata és a kiszolgálóra való bejelentkezés Excel VBA programból lehetséges, de ne várja el, hogy néhány percen belül megírja a kódot, amely ezt megteszi.