401 „Neautorizuotų“ atsakymų likvidavimas, po to 200 atsakymų

Turėjau situaciją su dideliu vidiniu korporaciniu žiniatinklio taikymu, veikiančiu ASP.NET 3.5, IIS6, generuojant 401 „Neteisėtus“ atsakymus, po to sekė 200 „Ok“ atsakymų (kaip aprašė Fiddler). Aš žinau, kodėl taip atsitinka (integruota auth leidžia naršyklę siųsti iš naujo), bet ieško kai kurių minčių apie tai, kaip sumažinti ar panaikinti situaciją. Nagrinėjama programa veikia WAN, o kai kurie vartotojai patiria latentą iki 250 ms, todėl priverstinis tolesnis pranešimas gali turėti pastebimą poveikį puslapio įkėlimo laikui, ypač kai puslapiuose yra keletas pakopinių išskleidžiamųjų sąrašų.

Programos naudotojai yra valdomos darbalaukio aplinkos vidiniai, todėl mechanizmai, leidžiantys naršyklei išsiųsti kredencialus pirmame prašyme (ar tai įmanoma?) Gali būti įmanoma diegimo požiūriu. Tai veiks tiems puslapiams, kuriems reikia vartotojo identifikavimo, bet tiems ištekliams, kuriems nereikia autentifikavimo („WebResource.axd“, „ScriptResource.axd“ ir kai kurios pasirinktinės žiniatinklio paslaugos), kuri leis anoniminį autorių. Ive pažvelgė, kaip tai apibrėžta remiantis kiekviena vieta web.config, bet rezultatai buvo sumaišyti (vis dar yra 401 atsakymas).

Id vertiname visas „geriausios praktikos“ rekomendacijas, skirtas susidoroti su šia situacija. Yra daug išteklių, kurie nustato problemą, tačiau nė vienas iš jų nerado tinkamo sprendimo.

Ačiū!

Keisti. Ištekliai, kuriems nereikia autentifikavimo (t.y., kaskados išskleidžiamuosiuose sąrašuose naudojamos žiniatinklio paslaugos), gali būti anonimiškai užduodami pridedant vietos įrašą į žiniatinklio konfigūraciją, tačiau dar neradau atsakymo už patvirtintus išteklius.

23
29 марта '09 в 8:16 2009-03-29 08:16 Trojos medžioklė paprašė kovo 29 d. 09: 08:16 2009-03-29 08:16
@ 4 atsakymai

Deja, tai yra HTTP schemos NTLM artefaktas.

Trumpai tariant, naršyklė („Internet Explorer“ ar kitaip) nežino, kad ji turi būti visiškai atpažinta, kol ji atsimena su atsakymu 401, kuriame yra WWW-Authenticate atsakymo antraštė.

WWW-Authenticate: NTLM , gana erzina, reikia užbaigti du 401 atsakymus į vieną nuolatinį ryšį, ir šis procesas turi būti pakartotas, kai tik uždaromas nuolatinis HTTP ryšys. Todėl, net jei galėjote priversti naršyklę inicijuoti prašymą dėl aklo NTLM bandymo, bent vienas 401 atsakymas negali būti pašalintas iš operacijos.

Manau, kad geriausia maksimaliai padidinti laiką, per kurį nuolatiniai ryšiai yra laisvi.

15
30 апр. Jeffrey Hantin atsakymas, pateiktas balandžio 30 d 2009-04-30 03:37 '09, 3:37 2009-04-30 03:37

„CSCRIPT.EXE c“: „inppub“ administratoriai ADSUTIL.VBS SET W3SVC / AuthPersistSingleRequest FALSE

border=0

Reikšmingai sumažinti 401 sumą.

3
18 авг. Rob Fuller atsakymas, pateiktas rugpjūčio 18 d 2010-08-18 02:09 '10, 02:09 2010-08-18 02:09

Gali reikėti autentifikuoti naudojant formas, jei vėlavimas su 401 vėlavimu yra per ilgas. Vartotojai turės prisijungti aiškiai, bet tik vieną kartą. Tada galite naudoti slapukų ar „cookieless“ schemą ir gauti atsakymą pirmą kartą.

Darau prielaidą, kad puslapio apkrova bus lėta, jei turėsite pakopinius išskleidžiamuosius sąrašus, o pradinis puslapio apkrova užpildo vieną vertę, dėl kurios POST gauna kitą sąrašą, nustatys šią vertę, kitą POST, kad vėl gautų kitą sąrašą, ir netrukus. Tokiu atveju pirmąjį turą gali tekti užpildyti visus šiuos išskleidžiamuosius sąrašus, o ne laukti, kol POST atsakys.

0
01 мая '09 в 8:16 2009-05-01 08:16 atsakymą pateikė JJO gegužės 01'09 08:16 2009-05-01 08:16

Manau, kad galite įtikinti „Firefox“ automatiškai siųsti NTLM kredencialus į baltųjų domenų sąrašą, naudodami „about: config“ nustatymus - naudokite „network.automatic-ntlm-auth.trusted-uris“ nustatymą. Aš ne bandžiau pats. Nesu tikras, kad yra „Internet Explorer“ ekvivalentas.

Deja, jei naudojate kažką panašaus į „Kerberos“, nėra jokio būdo išvengti 401.

0
29 марта '09 в 11:22 2009-03-29 11:22 atsakymą pateikė „ bhollis“ kovo 29 d. 09 val. 11:22 2009-03-29 11:22

Kiti klausimai apie žymes arba Užduoti klausimą