IIS 7.5 altında çalışan bir php web sitem var. Site Windows kimlik doğrulaması ile güvence altına alınmıştır ve düzgün çalışır:
Kullanıcılar siteye gittiklerinde, kullanıcı adı / parola girmeleri ve kimlik doğrulaması yapıldıklarında geçiş yapmaları istenir. Kullanıcılar Parola'yı 3 kez İptal veya yanlış yazdıysa, 401 hata sayfası gösterilir:
Şimdi nasıl giriş yapılacağını açıklayan özel bir sayfa göstermek istiyorum. Bu yüzden Hata sayfalarına gidiyorum, 401.2 durum kodunu seçiyorum ve görüntülemek istediğim sayfaya yönlendiriyorum:
Ardından, özel hataların herkes için açık olduğundan emin olun. Ve kaa-boom! Kimlik doğrulama artık çalışmıyor, kullanıcılara şifre istemi sunulmuyor. Belgelerin dediği gibi, Windows Kimlik Doğrulaması önce 401 yanıtı göndererek çalışır, ardından tarayıcı kullanıcıdan sağlayıcı kimlik bilgilerini ister ve daha sonra ne yapacağını öğrenir.
Burada ne olur: sayfa için ilk istek üzerine IIS 401 üstbilgisi göndermeye çalışır, ancak web.config dosyasının "bu sayfaya 401 yönlendirmesinde" yazdığını fark eder. Kimlik doğrulama yerine, yalnızca yönlendirme sayfasını verir.
Ben 401, 401.1, 401.2 değiştirmeyi denedim - hiçbir fark yaratmadı.
Neyi yanlış yapıyorum ve kullanıcı kimlik doğrulama hatası hakkında özel sayfa nasıl verilir?
ps İşte 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>