2012-07-26 8 views
7

क्या किसी के पास प्रमाणीकरण के लिए संकेत देने के लिए किसी की .htaccess फ़ाइल सेट करने का कोई तरीका हो सकता है? उदाहरण: मैं एक ब्राउज़र टैब खोलता हूं, पीडब्ल्यू संरक्षित यूआरएल पर जाता हूं, मुझे एक पीडब्ल्यू के लिए संकेत दिया जाता है। टैब बंद करें (मुख्य ब्राउज़र अभी भी खुला है) और ऊपर दोहराएं और फिर पीडब्लू के लिए संकेत दिया जाए। यह तब तक नहीं हो रहा है जब तक कि मैं ब्राउज़र बंद नहीं करता। शायद यह एक कैशिंग चीज है?.htaccess प्रॉम्प्ट पासवर्ड

AuthType Basic 
AuthName "myName" 
AuthUserFile "/home/myDir/.htpasswds/public_html/myName/passwd" 
require valid-user 

अग्रिम धन्यवाद:

यहाँ मैं अब तक राशि है।

उत्तर

6

वास्तव में यह (सरलीकृत) इस तरह से काम कर रहा है:

  • ब्राउज़र साख के बिना अपने सर्वर से अनुरोध भेजता है 403 त्रुटि के साथ
  • अपाचे प्रतिक्रियाओं क्योंकि "वैध-उपयोगकर्ता की आवश्यकता" निर्दिष्ट किया गया था
  • ब्राउज़र संकेतों उपयोगकर्ता नाम & पासवर्ड
  • ब्राउज़र फिर से अनुरोध भेजता है, इस बार प्रमाण-पत्र प्रदान किए जाते हैं
  • अपाचे AuthUserFile के विरुद्ध प्रमाण-पत्र सत्यापित करता है और सेट "वैध-उपयोगकर्ता" तदनुसार
  • अगर सब कुछ ठीक है - 200 स्थिति कोड के साथ डेटा डालता
  • ब्राउज़र कि 200 कोड प्रासंगिक डोमेन के उपयोग किए गए क्रेडेंशियल कैश प्राप्त करता है जब तक ब्राउज़र सत्र समाप्त हो

जैसा कि आप देखते हैं - समस्या ब्राउज़र में रखती है। आप किसी डोमेन के लिए उपयोग किए जाने वाले पासवर्ड को भूलने के लिए ब्राउज़र को मजबूर नहीं कर सकते हैं। और आमतौर पर आप नहीं चाहते हैं - उदाहरण के लिए यदि पासवर्ड संरक्षित पृष्ठ में छवियां हैं - ब्राउज़र को प्रत्येक डाउनलोड की गई छवि के लिए उपयोगकर्ता नाम और पासवर्ड की आवश्यकता होगी।

लेकिन वहाँ कुछ सुझाव आप की कोशिश कर सकते हैं:

  • आप अपने खुद के अपाचे प्राधिकरण हैंडलर कि केवल उपयोगकर्ता हर दूसरी बार यह पेज तक पहुँच रहा है अधिकृत करता है लिख सकता है; लेकिन वास्तव में करना मुश्किल है
  • आप http प्रमाणीकरण पर भरोसा करने के बजाय किसी प्रकार के फॉर्म-आधारित प्रमाणीकरण (PHP या asp.net जैसी स्क्रिप्ट में) का उपयोग कर सकते हैं; इस तरह से काफी लचीला
  • आप एक चाल कर सकते हैं, कि हर बार जब किसी संरक्षित पृष्ठ को किसी प्रकार की स्क्रिप्ट तक पहुंचाया जाता है तो passwd फ़ाइल में पासवर्ड बदल जाता है; फिर प्रत्येक उपयोगकर्ता के लिए दो पासवर्ड प्रदान करें और उन्हें प्रत्येक अनुरोध पर स्विच करें; इस तरह ब्राउज़र हमेशा "गलत" पासवर्ड याद करता है; यह पागल लगता है लेकिन यह एक सबसे आसान समाधान है जिसके बारे में मैं सोच सकता हूं :-)