मेरे पास IIS 7.5 के तहत एक php वेबसाइट है। साइट Windows प्रमाणीकरण द्वारा सुरक्षित है और यह ठीक काम करती है:
जब उपयोगकर्ता साइट पर जाते हैं, तो उन्हें उपयोगकर्ता नाम / पासवर्ड के लिए कहा जाता है और यदि प्रमाणित किया जाता है तो उसके माध्यम से प्राप्त किया जाता है। यदि उपयोगकर्ता 3 बार रद्द या गलत पासवर्ड पर क्लिक करते हैं, तो उन्हें 401 त्रुटि पृष्ठ दिखाया गया है:
अब मैं कस्टम पेज दिखाना चाहूंगा कि लॉग-इन कैसे करें। इसलिए मैं त्रुटि पृष्ठों पर जाता हूं, स्थिति कोड 401.2 का चयन करता हूं और उस पृष्ठ पर इंगित करता हूं जिसे मैं प्रदर्शित करना चाहता हूं:
फिर सुनिश्चित करें कि सभी के लिए कस्टम त्रुटियां चालू हैं। और काया-बूम! प्रमाणीकरण कोई और काम नहीं करता है, उपयोगकर्ताओं को पासवर्ड प्रॉम्प्ट के साथ प्रस्तुत नहीं किया जाता है। जैसा कि दस्तावेज़ीकरण कहता है, विंडोज ऑथेंटिकेशन पहले 401 उत्तर भेजकर काम करता है, फिर ब्राउज़र उपयोगकर्ता को प्रदाता क्रेडेंशियल्स के लिए पूछता है और फिर वे आगे क्या करना है, इस पर काम करते हैं।
यहां क्या होता है: पृष्ठ के लिए पहले अनुरोध पर IIS 401-हेडर भेजने की कोशिश करता है, लेकिन यह नोटिस करता है कि web.config "इस पृष्ठ पर 401 रीडायरेक्ट पर" कहता है। और प्रमाणीकरण के बजाय, यह सिर्फ पुनर्निर्देशित पृष्ठ देता है।
मैंने 401, 401.1, 401.2 की जगह लेने की कोशिश की है - कोई फर्क नहीं पड़ा।
मैं क्या गलत कर रहा हूं और उपयोगकर्ता प्रमाणीकरण त्रुटि पर कस्टम पृष्ठ कैसे दे सकता हूं?
ps यहाँ web.config है:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<httpErrors errorMode="Custom">
<remove statusCode="500" subStatusCode="-1" />
<remove statusCode="404" subStatusCode="-1" />
<remove statusCode="401" subStatusCode="-1" />
<error statusCode="401" subStatusCode="2" prefixLanguageFilePath="" path="/not_restricted/401.htm" responseMode="ExecuteURL" />
<error statusCode="404" prefixLanguageFilePath="" path="/not_restricted/404.htm" responseMode="ExecuteURL" />
</httpErrors>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
</system.webServer>
<system.web>
<identity impersonate="false" />
<customErrors defaultRedirect="http://www.myserver.com/not_restricted/500.htm" mode="Off">
</customErrors>
</system.web>
</configuration>