क्या HTTPS के साथ वेब पेजों को एक्सेस करना संभव है और एक्सेल का उपयोग करके लॉगिन / पासवर्ड की आवश्यकता है? खैर, हाँ और नहीं। यहाँ सौदा है और यह इतना सीधा क्यों नहीं है।
सबसे पहले, शर्तों को परिभाषित करें
HTTPS है रिवाज के अनुसार SSL (सिक्योर सॉकेट्स लेयर) के लिए पहचानकर्ता क्या है। यह वास्तव में पासवर्ड या लॉगिन के साथ ऐसा करने के लिए कुछ भी नहीं है। एसएसएल क्या करता है एक वेब क्लाइंट और सर्वर के बीच एक एन्क्रिप्टेड कनेक्शन स्थापित किया जाता है ताकि दोनों के बीच कोई भी जानकारी "स्पष्ट" - अनएन्क्रिप्टेड ट्रांसमिशन का उपयोग करके नहीं भेजी जाए। यदि जानकारी में लॉगिन और पासवर्ड की जानकारी शामिल है, तो ट्रांसमिशन को एन्क्रिप्ट करना आंखों को चुभने से बचाता है... लेकिन पासवर्ड एन्क्रिप्ट करना कोई आवश्यकता नहीं है। मैंने "कन्वेंशन द्वारा" वाक्यांश का उपयोग किया क्योंकि वास्तविक सुरक्षा तकनीक एसएसएल है। HTTPS केवल उस सर्वर को संकेत देता है जो क्लाइंट उस प्रोटोकॉल का उपयोग करने पर योजना बनाता है। एसएसएल का उपयोग कई अन्य तरीकों से किया जा सकता है।
तो... यदि आपका कंप्यूटर SSL का उपयोग करने वाले सर्वर को URL भेजता है और वह URL HTTPS से शुरू होता है, तो आपका कंप्यूटर सर्वर से कह रहा है:
“अरे मिस्टर सर्वर, आइए इस एन्क्रिप्शन चीज़ पर हाथ फेरते हैं ताकि अब से जो कुछ भी हम कहें वह किसी बुरे आदमी द्वारा बाधित न हो। और जब ऐसा हो जाए, तो आगे बढ़ें और मुझे URL द्वारा संबोधित पृष्ठ भेजें। "
एसएसएल कनेक्शन स्थापित करने के लिए सर्वर प्रमुख सूचना को वापस भेज देगा। यह वास्तव में इसके साथ कुछ करने के लिए आपके कंप्यूटर पर निर्भर है।
की भूमिका को समझने के लिए यह 'कुंजी' (दंड... ठीक है, क्रमबद्ध) है VBA एक्सेल में। VBA में प्रोग्रामिंग को वास्तव में अगला कदम उठाना होगा और ग्राहक पक्ष पर एसएसएल को लागू करना होगा।
'रियल' वेब ब्राउजर्स स्वचालित रूप से करते हैं और आपको स्टेटस लाइन में थोड़ा सा लॉक सिंबल दिखाते हैं कि आपको यह दिखाया गया है कि यह किया जा चुका है। लेकिन अगर VBA सिर्फ एक फ़ाइल के रूप में वेब पेज को खोलता है और एक स्प्रेडशीट (एक बहुत ही सामान्य उदाहरण) में कोशिकाओं में यह जानकारी पढ़ता है, तो एक्सेल कुछ अतिरिक्त प्रोग्रामिंग के बिना ऐसा नहीं करेगा। सर्वर का हाथ मिलाने और सुरक्षित एसएसएल संचार स्थापित करने के लिए केवल एक्सेल द्वारा नजरअंदाज किए जाने की कृपा है।
लेकिन आप वही पेज पढ़ सकते हैं, जो आपको समान तरीके से चाहिए
इसे साबित करने के लिए, आइए SSL कनेक्शन का उपयोग करें जिसका उपयोग Google की जीमेल सेवा द्वारा किया जाता है (जो "https" से शुरू होता है) और उस कनेक्शन को खोलने के लिए एक कॉल को कोड करें जैसे कि यह एक फ़ाइल थी।
यह वेब पेज को पढ़ता है जैसे कि यह एक साधारण फ़ाइल थी। चूंकि एक्सेल के हाल के संस्करण स्वचालित रूप से HTML आयात करेंगे, ओपन स्टेटमेंट निष्पादित होने के बाद, जीमेल पेज (डायनामिक HTML ऑब्जेक्ट्स घटा) एक स्प्रेडशीट में आयात किया जाता है। एसएसएल कनेक्शन का लक्ष्य सूचना का आदान-प्रदान करना है, न कि केवल एक वेब पेज पढ़ना, इसलिए यह आम तौर पर आपको बहुत दूर नहीं जाना है।
अधिक करने के लिए, आपके पास कुछ रास्ता होना चाहिए, अपने एक्सेल VBA प्रोग्राम में, एसएसएल प्रोटोकॉल को सपोर्ट करने के लिए और शायद DHTML को भी सपोर्ट करने के लिए। आप शायद पूर्ण के साथ शुरू करने से बेहतर हैं मूल दृश्य एक्सेल VBA के बजाय। फिर इंटरनेट ट्रांसफर एपीआई विननेट की तरह नियंत्रण का उपयोग करें और आवश्यकतानुसार एक्सेल ऑब्जेक्ट्स को कॉल करें। लेकिन एक्सेल VBA प्रोग्राम से सीधे WinInet का उपयोग करना संभव है।
WinInet एक API - एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस - WinInet.dll है। यह मुख्य रूप से इंटरनेट एक्सप्लोरर के प्रमुख घटकों में से एक के रूप में उपयोग किया जाता है, लेकिन आप इसे सीधे अपने कोड से भी उपयोग कर सकते हैं और आप इसे HTPSPS के लिए उपयोग कर सकते हैं। WinInet का उपयोग करने के लिए कोड लिखना कम से कम एक मध्यम कठिनाई का काम है। सामान्य तौर पर, इसमें शामिल कदम हैं:
- HTTPS सर्वर से कनेक्ट करें और HTTPS अनुरोध भेजें
- यदि सर्वर हस्ताक्षरित क्लाइंट प्रमाणपत्र के लिए कहता है, तो प्रमाणपत्र संदर्भ संलग्न करने के बाद अनुरोध को फिर से भेजें
- यदि सर्वर संतुष्ट है, तो सत्र प्रमाणित है
WinInet कोड को नियमित HTTP के बजाय https का उपयोग करने के लिए लिखने में दो प्रमुख अंतर हैं:
आपको यह भी ध्यान में रखना चाहिए कि लॉगिन / पासवर्ड का आदान-प्रदान करने का कार्य तार्किक रूप से https और SSL का उपयोग करके सत्र को एन्क्रिप्ट करने से स्वतंत्र है। आप एक या दूसरे, या दोनों कर सकते हैं। कई मामलों में, वे एक साथ जाते हैं, लेकिन हमेशा नहीं। और WinInet आवश्यकताओं को लागू करने से लॉगिन / पासवर्ड अनुरोध पर स्वचालित रूप से प्रतिक्रिया करने के लिए कुछ भी नहीं होता है। यदि, उदाहरण के लिए, लॉगिन और पासवर्ड एक वेब फॉर्म का हिस्सा हैं, तो आपको इसका पता लगाना पड़ सकता है फ़ील्ड्स के नाम और एक्सेल VBA से फ़ील्ड्स को अपडेट करने से पहले लॉगिन स्ट्रिंग को "पोस्ट" करें सर्वर। वेब सर्वर की सुरक्षा के लिए सही तरीके से प्रतिक्रिया देना एक वेब ब्राउज़र क्या करता है, इसका एक बड़ा हिस्सा है। दूसरी ओर, यदि SSL प्रमाणीकरण की आवश्यकता है, तो आप VBA में लॉग इन करने के लिए InternetExplorer ऑब्जेक्ट का उपयोग करने पर विचार कर सकते हैं ...
लब्बोलुआब यह है कि https और Excel VBA प्रोग्राम से सर्वर में लॉग इन करना संभव है, लेकिन उस कोड को लिखने की उम्मीद न करें जो कुछ ही मिनटों में करता है।