Web uygulamamın, bir AJAX çağrısı aracılığıyla kimlik doğrulama bilgilerini gönderen bir oturum açma sayfası var. Kullanıcı doğru kullanıcı adını ve şifreyi girerse, her şey yolunda, ancak değilse, aşağıdakiler gerçekleşir:
- Web sunucusu, isteğin iyi biçimlendirilmiş bir Yetkilendirme başlığı içermesine rağmen, başlıktaki kimlik bilgilerinin başarılı bir şekilde doğrulanmadığını belirler.
- Web sunucusu bir 401 durum kodu döndürür ve desteklenen kimlik doğrulama türlerini listeleyen bir veya daha fazla WWW-Authenticate başlığı içerir.
- Tarayıcı, XMLHttpRequest nesnesindeki çağrıma yanıtın bir 401 olduğunu ve yanıtın WWW-Authenticate üstbilgilerini içerdiğini algıladı. Ardından kullanıcı adı ve parolayı soran bir kimlik doğrulama iletişim kutusu açılır.
3. adıma kadar her şey yolunda. İletişim kutusunun açılmasını istemiyorum, AJAX geri arama işlevimde 401 yanıtını işlemek istiyorum. (Örneğin, giriş sayfasında bir hata mesajı görüntüleyerek.) Kullanıcının elbette kullanıcı adını ve şifresini yeniden girmesini istiyorum, ancak tarayıcının çirkin, varsayılanını değil, arkadaş canlısı, güven verici giriş formumu görmelerini istiyorum. kimlik doğrulama iletişim kutusu.
Bu arada, sunucu üzerinde hiçbir kontrole sahip değilim, bu nedenle özel bir durum kodu (yani, 401 dışında bir şey) döndürmesi bir seçenek değil.
Kimlik doğrulama iletişim kutusunu engellememin bir yolu var mı? Özellikle, Kimlik Doğrulama Gerekli iletişim kutusunu Firefox 2 veya sonraki sürümlerde engelleyebilir miyim? IE 6 ve sonraki sürümlerde [ana bilgisayar] iletişim kutusunu engellemenin herhangi bir yolu var mı ?
Yazardan
Ek Bilgileri Düzenleyin (18 Eylül):
Tarayıcının kimlik doğrulama iletişim kutusundaki asıl sorunun, kullanıcıya yetersiz bilgi vermesi olduğunu eklemeliyim.
Kullanıcı giriş sayfasındaki form aracılığıyla yeni bir kullanıcı adı ve şifre girmiştir, her ikisini de doğru yazdığına inanmaktadır ve gönder düğmesine tıklamış veya enter tuşuna basmıştır. Beklentisi, bir sonraki sayfaya götürüleceği veya belki de bilgilerini yanlış girdiği ve tekrar denemesi gerektiği söylenmesidir. Ancak, beklenmedik bir iletişim kutusu ile karşılaşır.
İletişim o sadece aslında hiçbir bildirim yapar yaptım bir kullanıcı adı ve şifre girin. Bir sorun olduğunu ve tekrar denemesi gerektiğini açıkça ifade etmiyor. Bunun yerine, iletişim kutusu kullanıcıya "Site şunu söylüyor: ' [bölge] ' gibi şifreli bilgiler sunar . Nerede [bölge] sadece bir programcı sevebileceğimi kısa bölge adıdır.
Web tarayıcısı tasarımcıları not alıyor: iletişim kutusunun kendisi basitçe daha kullanıcı dostu olsaydı kimse kimlik doğrulama iletişim kutusunu nasıl bastıracağını sormazdı. Bütün bir giriş formunu yapıyorum nedeni ürün yönetimi ekibi haklı tarayıcılar kimlik doğrulama diyaloglar korkunç olarak değerlendirdiği olmasıdır.