ASP .NET tugiteenuse hääl veerg

Tõrkeotsingu vormide autentimine

Selle veeru teie vajadustele kohandamise soovime kutsuda teid esitama oma ideid teemad, mida te ja probleeme, mida soovite näha lahendada tulevikus teabebaasi (Knowledge Base) artikleid ja tugiteenuste hääl. Te saate esitada oma ideid ja tagasisidet Küsida It vormi kasutades. On ka link vormi selle veeru allosas.

Tere tulemast ASP.net-i toe hääl veerus! Minu nimi on Jerry Orman. On Microsofti 5 aasta jooksul ja kulutanud enamuse ajast Web seotud tehnoloogiaid, nagu Microsoft FrontPage ja Microsoft SharePointi uusi tehnoloogiaid. On kulutanud viimase aasta töötamine Microsoft ASP.NET kui tugiteeninduse töötaja. Sel kuul veerus tugiteenuse hääl ma selgitada tõrkeotsing vormide autentimine Microsoft ASP.NET.

Tõrkeotsingu vormide autentimine

ASP.net-i rakenduse vormide autentimise kasutamisel võite leida selle korral tõrkeotsingut probleemi, mis ilmneb siis, kui kasutaja suunatakse juhuslikult sisselogimislehele. See maailmas, see probleem esineb viisil, mis ei lase lihtsalt manustate Silur ja jäädvustada probleemi. Tootmise keskkondades, kuid see kehtib harva. Nagu see üks juhuslik probleemide tõrkeotsinguks peate Logiteave probleemiga seotud, nii et saate kitsendada põhjuseks.Selle veeru me korraks katta vormide autentimine mõiste. Me siis uurida millised stsenaariumid põhjustada kasutaja sisselogimise lehele ümber ja kuidas saada andmeid, mis on seotud isoleerida probleem. Me ka katta kuidas rakendada IHttpModule liidese Logiteave vormide autentimist.

Vormide autentimine ülevaade

Kui kasutaja kontrollib veebisaidi vormide autentimist kasutades, loob server küpsise. Küpsis väärtus on krüptitud vormide autentimine piletit. Küpsis on edasi server rakenduse iga taotluse ja FormsAuthenticationModule klassi decrypts küpsise väärtus ja määratleb, kui kasutaja on kehtiv või mitte.Vaikimisi lisatakse failis Machine.config FormsAuthenticationModule klassi. FormsAuthenticationModule klassi haldab FormsAuthentication protsessi.Kirje Machine.config faili on järgmine:

<httpModule>     …other modules…     <add name="FormsAuthentication"         type="System.Web.Security.FormsAuthenticationModule" />     …other modules…</httpModule>

Üldised HTTP-liiklust autentimiseks vormide autentimist kasutades sarnaneb järgmisega:

  1. Klient saadab HTTP GET Default.aspx. No vormide autentimine küpsis saadetakse.

  2. Server saadab Login.aspx 302 vastuse (uuesti).

  3. Klient saadab HTTP POST Login.aspx. See hõlmab sisselogimise andmeid.

  4. Server saadab Default.aspx 302 vastuse (uuesti). Vormide autentimine küpsis on lisatud.

  5. Klient saadab HTTP GET Default.aspx. See hõlmab vormide autentimine küpsist.

Rakendamise ja vormide autentimise kasutamise kohta lisateabe saamiseks külastage järgmist MSDN-i veebisaiti:

http://msdn2.microsoft.com/en-us/library/7t6b43z4.aspx

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthentication(vs.71).aspx

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthenticationticket(vs.71).aspxVormide autentimine küpsised ühiskasutuse kohta lisateabe saamiseks külastage ASP.net-i veebisaiti:

http://quickstarts.asp.net/QuickStartv20/aspnet/doc/security/formsauth.aspx

Kasutaja suunatakse sisselogimislehele põhjused

Vormide autentimine küpsis on kadunud

1. stsenaarium

Selle stsenaariumi puhul kasutaja logib veebisaidile. Mingil hetkel saadab klient päringu server, ja FormsAuthenticationModule klassi ei saa küpsise. Saate määratleda, kui kasutaja taotlus ei sisalda küpsis, lubades cookie logimine rakenduses Microsoft Internet Information Services (IIS). Selleks toimige järgmiselt.

  1. Avage IIS-i Microsofti halduskonsool (MMC).

  2. Paremklõpsake veebilehel ja seejärel klõpsake nuppuAtribuudid.

  3. Klõpsake vahekaarti veebisait ja klõpsake Logimise lubamine.

  4. Veenduge, et Logi vorming on W3C laiendatud logifaili vormingut.

  5. Klõpsake nuppu Atribuudid.

  6. Klõpsake vahekaarti Täpsemalt ja seejärel klõpsake nuppuLaiendatud atribuudid.

  7. Märkige ruut Cookie(cs(Cookie)) klõpsake jaotises Laiendatud atribuudidja Referer (cs(Referer)) ruut.

Selle probleemi ilmnemisel tehke kindlaks, milline klient oli probleem ja selle kliendi IP-aadress. IIS-i Logi kliendi IP-aadressi filtreerimine ja vaatamiseks veeru <küpsise>.Märkus. Logi sõela abil IIS-i logides sõeluda. Logi sõela allalaadimiseks külastage järgmist Microsofti veebisaiti:

http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07Pärast seda, kui olete selle konkreetse kasutaja taotlused loendi, otsige taotlusi sisselogimise lehele. Teate nad suunati sellele lehele ja soovite näha taotlusi ümbersuunamist ilmnemisele. Kui näete midagi sarnaneb järgmisele kliendile kas ei saatnud küpsise või küpsis eemaldati võrgu kliendi ja serveri vahel.See on esmase sisselogimise.

Meetod

Leht

Vastus

Küpsised

SAADA

/Default.aspx

302 (ümbersuunamine)

Ei luba küpsiseid

SAADA

/Login.aspx

200 (edu)

Ei luba küpsiseid

POSTITUS

/Login.aspx

302 (ümbersuunamine)

Ei luba küpsiseid

SAADA

/Default.aspx

200 (edu)

.ASPXAUTH

SAADA

/SomePage.aspx

302 (ümbersuunamine)

Ei. ASPXAUTH küpsis

Need on taotlust, millele järgneb taotluse lehele saidil ilma seda. ASPXAUTH küpsist.

Meetod

Leht

Vastus

Küpsised

SAADA

/SomePage.aspx

302 (ümbersuunamine)

No. ASPXAUTH küpsis

SAADA

/Login.aspx

200 (edu)

Ei. ASPXAUTH küpsis

POSTITUS

/Login.aspx

302 (ümbersuunamine)

Ei. ASPXAUTH küpsis

SAADA

/SomePage.aspx

200 (edu)

.ASPXAUTH

Märkus. Esimesel nõudmisel, et kasutaja ei ole tõenäoliselt küpsis vormide autentimist, kui loote Püsiküpsis. IIS-i Logis ainult näitab teile küpsiste vastuvõtmise taotlus. Esimesel nõudmisel on vormide autentimine küpsis saab taotlus eduka sisselogimise katsel.

2. stsenaarium

Vormide autentimine küpsis saab ka kadunud, kui kliendi küpsis piirang on ületatud. Microsoft Internet Exploreris on piirang 20 küpsised. Pärast seda, kui klient on loodud 20 küpsise, eelmise küpsised eemaldatakse kliendi kogumine. Kui see. Eemaldatakse ASPXAUTH küpsis, kasutaja suunatakse sisselogimise lehele järgmise päringu töötlemise.Need kaks stsenaariume saab teha tõrkeotsingut samal viisil. Vaata taotluse vahetult enne sisselogimislehele ümbersuunamise. Kui taotlus sellele lehele loob küpsised, see olla midagi uurida.Lisateabe saamiseks klõpsake Microsofti teabebaasi artikli kuvamiseks järgmist artiklinumbrit:

306070 number ja Internet Exploreris küpsiste mahupiirangudFiddler abil saate vaadata HTTP päised, mis saadetakse kliendile. Pärast liiklust, topeltklõpsake taotlus, ja seejärel klõpsake päised näha komplekt-küpsise päis. Kui te jälgida edukat sisselogimist, kuvatakse vastusena edukat sisselogimist komplekt-küpsise päis.Fiddler allalaadimiseks külastage järgmist Fiddler veebisaiti:

http://www.fiddlertool.com/fiddler/

Stsenaarium 3

Pärast taotluse klient, on erinevad kihid, mis võivad mõjutada paketid, mis on saatnud. Kui võrgu seade eemaldab küpsise määramiseks peate jäädvustada Võrgujälitus klient ja server, ja seejärel vaadake küpsise taotluse keha. Soovite vaadata veendumaks, et küpsise saadeti kliendi taotlus ja kontrollige serveri jälgimine veendumaks, et server saanud küpsise.Kliendi taotlusSee on GET-nõude pärast seda, kui kasutaja on autenditud. Vormide autentimine piletit teave on esile tõstetud sinine. See kinnitab, et küpsiste teabe jätta klient. Kui kasutate võrgu püüdmise tööriista Hõivedraiver, nagu näete liiklust, mis läks tegelikult läbi adapter.

47 45 54 20 68 74 74 70-3a 2f 2f 6c 6f 63 61 6c   GET http://local68 6f 73 74 2f 46 6f 72-6d 73 41 75 74 68 4c 6f   host/FormsAuthLo67 54 65 73 74 2f 57 65-62 46 6f 72 6d 31 2e 61   gTest/WebForm1.a73 70 78 20 48 54 54 50-2f 31 2e 31 0d 0a 41 63   spx HTTP/1.1..Ac63 65 70 74 3a 20 69 6d-61 67 65 2f 67 69 66 2c   cept: image/gif,…Other headers of the GET request…63 68 65 0d 0a 43 6f 6f-6b 69 65 3a 20 2e 41 53   che..Cookie: .AS50 58 41 55 54 48 3d 33-43 45 46 39 42 39 41 30   PXAUTH=3CEF9B9A043 33 37 41 44 46 36 33-45 36 42 44 33 37 42 36   C37ADF63E6BD37B639 43 44 41 32 35 30 30-30 46 38 30 37 32 38 46   9CDA25000F80728F35 31 43 39 35 36 36 44-31 34 43 35 34 31 34 35   51C9566D14C5414538 31 43 39 33 45 32 41-30 31 44 44 43 44 45 46   81C93E2A01DDCDEF32 34 41 31 37 34 32 39-34 31 30 43 30 39 37 34   24A17429410C097442 33 45 43 42 30 36 34-32 32 38 45 33 35 33 39   B3ECB064228E353939 41 38 32 32 42 33 42-39 33 36 44 46 30 38 46   9A822B3B936DF08F42 41 42 44 33 45 31 30-32 44 30 30 32 31 30 43   BABD3E102D00210C32 45 31 33 39 38 30 37-39 42 32 33 35 32 39 46   2E1398079B23529F34 46 35 44 37 34 41 3b-20 50 72 6f 66 69 6c 65   4F5D74A; Profile3d 56 69 73 69 74 6f 72-49 64 3d 62 32 34 65 62   =VisitorId=b24eb

Serveripoolse taotlusKui te vaatate taotlus, mis on jõudnud server, soovite veenduge, et server saadud kliendi saadetud sama teavet. Kui server ei saanud sama teavet, peate uurida teiste seadmete võrku teha kindlaks, kus küpsis on eemaldatud.Märkus. On olnud juhtumeid ISAPI filtrite eemaldamine küpsised. Kui kinnitate veebiserver sai küpsise, et küpsis ei ole IIS-i logisse, vaadake ISAPI filtrite. Tuleb eemaldada filtrit, et näha, kas probleem on lahendatud.

Vormide autentimine pileti ajalõpp

Teiste kasutajate ümbersuunamine levinum põhjus on see, kui vormide autentimine pilet on aegunud. Vormide autentimine piletit saab ajalõpu kahel viisil. Esimesel juhul kui kasutate absoluutne aegumine. Absoluutne aegumiskuupäeva autentimise pilet aegub aegumise aeg kätte jõuab. Näiteks seate möödumist 20 minutit ja kasutaja külastamine saidi kell 02:00. Kasutaja suunatakse sisselogimislehele, kui kasutaja külastamine saidi pärast 2:20:00.Kui kasutate libistades aegumine, on veidi keerulisem. Küpsis ja saadud pilet on värskendatud, kui kasutaja külastamine saidi pärast aegumise aeg on pool aegunud. Näiteks seate möödumist 20 minutit, kasutades libistades aegumine. Kasutaja külastamine saidi kell 02:00 ja kasutaja saab küpsise, mis aegub kell 02:20. Järgneb ainult värskendada, kui kasutaja külastamine saidi kell 2:10:00. Kui kasutaja külastamine kell 2:09 sait, ei värskendata piletit Kuna pooled lõppemise aeg on möödas. Kui kasutaja seejärel ootab 10 minutit, külastades veebilehte kell 02:21, pilet on aegunud. Kasutaja suunatakse sisselogimise lehele.Üks viis seda lähenemine selline probleem on vormide autentimine küpsis ja piletit teavet. Sel viisil saate vaadata, kui IIS-i ja väärtused on esitatud küpsise. Saate seda teha kirjutades on HttpModuleja seejärel ühendada see moodul konveieri taotluse. Te ei pea muutma oma rakenduse koodi saada teavet, mida vajate.Lisatud näidis töötab Microsoft .NET Framework 1.1 ja .NET Framework 2.0 ja kogu kommentaare. Proovi sisaldab järgmisi faile:Märkus ma pakkuda allalaadimislingi FormsAuthLogger.zip failis esitatud koodi.Ma nüüd meelde peamist siin:

Nagu alati, Julgelt esitada ideid teemade kohta, mida soovite lahendada tulevikus veerud või teabebaasi (Knowledge Base) kasutamisel onKüsige It vormi.

Kas vajate veel abi?

Kas soovite rohkem valikuvariante?

Siin saate tutvuda tellimusega kaasnevate eelistega, sirvida koolituskursusi, õppida seadet kaitsma ja teha veel palju muud.

Kogukonnad aitavad teil küsimusi esitada ja neile vastuseid saada, anda tagasisidet ja saada nõu rikkalike teadmistega asjatundjatelt.