Saya memiliki situs web php yang berjalan di bawah IIS 7.5. Situs ini dijamin oleh otentikasi Windows dan berfungsi dengan baik:
Ketika pengguna pergi ke situs, mereka ditanyai nama pengguna / kata sandi dan lolos jika dikonfirmasi. Jika pengguna mengklik Batalkan atau salah ketik kata sandi 3 kali, mereka ditampilkan halaman 401 kesalahan:
Sekarang saya ingin menampilkan halaman khusus yang menjelaskan cara masuk. Jadi saya pergi ke halaman Kesalahan, pilih kode status 401.2 dan arahkan ke halaman yang ingin saya tampilkan:
Kemudian pastikan kesalahan khusus dihidupkan untuk semua orang. Dan kaa-boom! Otentikasi tidak berfungsi lagi, pengguna tidak diberikan kata sandi. Seperti yang dikatakan oleh dokumentasi, Otentikasi Windows berfungsi dengan mengirim 401 balasan pertama, lalu browser meminta pengguna ke kredensial penyedia dan kemudian mereka menentukan apa yang harus dilakukan selanjutnya.
Apa yang terjadi di sini: pada permintaan pertama untuk halaman IIS mencoba mengirim 401-header, tetapi pemberitahuan bahwa web.config mengatakan "pada 401 redirect ke halaman ini". Dan bukannya otentikasi, itu hanya memberikan halaman pengalihan.
Saya sudah mencoba mengganti 401, 401.1, 401.2 - tidak ada bedanya.
Apa yang saya lakukan salah dan bagaimana cara memberikan halaman kustom pada kesalahan otentikasi pengguna?
ps Inilah 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>