Prisijunkite prie „Microsoft“
Prisijunkite arba sukurkite paskyrą.
Sveiki,
Pasirinkti kitą paskyrą.
Turite kelias paskyras
Pasirinkite paskyrą, kurią naudodami norite prisijungti.

ASP .NET palaikymo balso stulpelio

Trikčių šalinimo formų autentifikavimas

Norėdami tinkinti šį stulpelį į jūsų poreikius, mes norite pakviesti galite pateikti savo idėjas, antraštes, kad palūkanų jums ir problemoms, kurių norite pamatyti įtrauktas į būsimus žinių bazės straipsniai ir palaikymo balso stulpelius. Galite pateikti savo idėjas ir atsiliepimus, naudojant formą Pateikite jį . Taip pat yra saitas į formą šio stulpelio apačioje.

Sveiki atvykę į ASP.NET palaikymo balso stulpelyje! Mano vardas yra Jerry Orman. Su "Microsoft" buvo per 5 metus ir išleisti didžiąją dalį savo laiko Web susijusių technologijų, pvz., Microsoft FrontPage ir Microsoft SharePoint technologijomis. Aš yra išleista praėjusiais metais darbo su "Microsoft" ASP.NET palaikymo inžinierius. Šį mėnesį stulpelyje palaikymo balso ketinu paaiškina, kaip spręsti, "Microsoft" ASP.NET formų autentifikavimas.

Trikčių šalinimo formų autentifikavimas

Kai naudojate formų autentifikavimas ASP.NET programai, gali būti būtina spręsti problemą, kuri kyla, kai vartotojas yra atsitiktinai nukreipta į prisijungimo puslapį. Idealus pasaulyje, ši problema gali kilti tokiu būdu, kuris leidžia lengvai pridėkite derintuvą ir fiksuoti problema. Gamybos aplinkoje, tačiau taip ir yra retai. Spręsti laisvosios panašus į tą problemą, jums reikia prisijungti informaciją, susijusią su problema, kad galite susiaurinti priežastis.

Šiame stulpelyje trumpai paaiškinsime formų autentifikavimas neteikiamas. Mes tada ieškoti į kurią scenarijai sukelti vartotojas yra nukreipti į prisijungimo puslapį ir kaip surinkti duomenis, kurie yra susiję su izoliuoti problema. Mes taip pat apims kaip įgyvendinti IHttpModule sąsaja prisijungti formų autentifikavimo informaciją.

Formų autentifikavimas apžvalga

Kai vartotojas autentifikuoja svetainėje naudojant formų autentifikavimas, serveris sukuria slapuką. Slapukas reikšmė yra užšifruotas formų autentifikavimo bilietą. Slapukas yra perduodamas į serverio kiekvieną užklausą, programai, ir FormsAuthenticationModule klasės iššifruoja slapukų reikšmę ir nustato, ar vartotojui galioja, ar ne.

Pagal numatytuosius nustatymus FormsAuthenticationModule klasės papildomas Machine.config faile. FormsAuthenticationModule klasės tvarko HashPasswordForStoringInConfigFileFormsAuthentication procesą.

Toliau pateikiamas iš Machine.config failo įrašą:

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

Bendra HTTP srautą už naudojant formų autentifikavimas yra panašus į šį:

  1. Klientas siunčia yra HTTP GET Default.aspx. Siunčiamas ne formų autentiškumo slapukų.

  2. Serveris siunčia Užrakinimo galimybės Login.aspx 302 atsakymą (nukreipti).

  3. Klientas siunčia HTTP POST Login.aspx. Ji apima prisijungimo duomenis.

  4. Serveris siunčia Užrakinimo galimybės Default.aspx 302 atsakymą (nukreipti). Yra formų autentiškumo slapukų.

  5. Klientas siunčia yra HTTP GET Default.aspx. Tai apima formų autentiškumo slapukų.

Daugiau informacijos apie įgyvendinimo ir formų autentifikavimas, apsilankykite šioje MSDN žiniatinklio svetainėse:

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).aspxJei norite gauti daugiau informacijos apie formų autentifikavimas slapukus, apsilankykite šioje ASP.NET žiniatinklio svetainėje:

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

Priežasčių, vartotojas gali būti nukreipti į prisijungimo puslapis

Formų autentiškumo slapukų prarandamas

1 scenarijus


Tokiu atveju vartotojas įeina į svetainę. Kai kliento kompiuteris siunčia užklausą į serverį, ir
FormsAuthenticationModule klasės negauna slapuką. Galite nustatyti, jei vartotojo užklausą nėra slapukas įjungdami slapukų registravimą Microsoft interneto informacijos tarnybų (IIS). Norėdami tai padaryti, atlikite šiuos veiksmus:

  1. Atidaryti IIS Microsoft valdymo konsolės (MMC).

  2. Dešiniuoju pelės mygtuku spustelėkite svetainės, o tada spustelėkite
    Ypatybės.

  3. Spustelėkite skirtuką žiniatinklio svetainėje , ir spustelėkite Įgalinti registravimą.

  4. Įsitikinkite, kad žurnalo formatas yra W3C išplėstas žurnalo failo formatą.

  5. Spustelėkite Ypatybės.

  6. Spustelėkite skirtuką Išsamiau ir spustelėkite
    Pratęstas ypatybės.

  7. Pagal Išplėstinio ypatybes, spustelėdami pažymėkite žymės langelį Cookie(cs(Cookie)) ir išsiųstą nuorodos (cs(Referer)) žymės langelį.

Kai iškyla ši problema, nustatyti, kuris klientas buvo problema ir kliento IP adresas. Filtruoti IIS žurnale kliento IP adresą ir peržiūrėti <slapukų> stulpelyje.

Pastaba. Galite naudoti žurnalo Parser apdoroti IIS žurnale. Norėdami atsisiųsti žurnalo Parser, apsilankykite šioje "Microsoft" svetainėje:

http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07Po to prašymų iš to konkretaus vartotojo sąrašą, paieškos užklausas į prisijungimo puslapį. Jūs žinote, jie buvo nukreipti į šį puslapį, ir norite peržiūrėti užklausas prieš nukreipimas įvyko klaida. Jei kažkas panašus į toliau pateikiamą, kliento arba nepateikė slapuką arba slapukas buvo pašalintas tarp kliento ir serverio tinkle.

Tai pradinis prisijungti.

Metodas

Puslapis

Atsakymas

Slapukai

GAUKITE

/Default.aspx

302 (peradresavimas)

Slapukai

GAUKITE

/Login.aspx

200 (sėkmė)

Slapukai

SKELBIMAS

/Login.aspx

302 (peradresavimas)

Slapukai

GAUKITE

/Default.aspx

200 (sėkmė)

.ASPXAUTH

GAUKITE

/SomePage.aspx

302 (peradresavimas)

ne. ASPXAUTH slapukas

Tai yra kitų užklausų, užklausa eina į puslapį svetainėje be toliau. ASPXAUTH slapukas.

Metodas

Puslapis

Atsakymas

Slapukai

GAUKITE

/SomePage.aspx

302 (peradresavimas)

ne. ASPXAUTH slapukas

GAUKITE

/Login.aspx

200 (sėkmė)

ne. ASPXAUTH slapukas

SKELBIMAS

/Login.aspx

302 (peradresavimas)

ne. ASPXAUTH slapukas

GAUKITE

/SomePage.aspx

200 (sėkmė)

.ASPXAUTH


Pastaba. Pirmasis prašymas, vartotojas nėra tikėtina, kad formų autentiškumo slapukų, išskyrus atvejus, kai kuriate nuolatinis slapukas. IIS žurnale bus rodomi tik jūsų slapukus, kurie buvo gauta užklausa. Pirmąjį prašymą, kad formų autentiškumo slapukų užklausa bus po sėkmingo prisijungimo bandymas.

2 scenarijus


Formų autentiškumo slapukų taip pat gali būti prarasti, kai kliento slapukų ribą. "Microsoft Internet Explorer", nėra apribojimų, 20 slapukų. Sukūrus 20 slapukų, kliento ankstesnį slapukai pašalinami iš kliento rinkinys. Jei toliau. ASPXAUTH slapukas pašalinamas, vartotojas būsite nukreipti į prisijungimo puslapį kai kiti užklausa apdorojama.

Taip pat galite išspręsti šie scenarijai. Pažiūrėkite į užklausą prieš peradresavimas į prisijungimo puslapį. Jei užklausą į šį puslapį generuoja slapukus, tai bus kas nors ištirti.

Norėdami gauti daugiau informacijos, spustelėkite toliau pateiktą straipsnio numerį ir peržiūrėkite „Microsoft Knowledge Base“ žinių bazės straipsnį:

306070 numeris ir "Internet Explorer" slapukų dydžio apribojimai


Fiddler galite peržiūrėti HTTP antraštes, kurie siunčiami klientui. Po fotografavimo srautą, du kartus spustelėkite užklausa ir spustelėkite antraštes pamatyti antraštės Set-Cookie. Jei sekate sėkmingai prisijungti, pamatysite sėkmingai prisijungti atsako antraštės Set-Cookie.

Norėdami atsisiųsti Fiddler, apsilankykite šioje "Fiddler" svetainėje:

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

3 scenarijus


Po to, kai užklausa palieka klientui, yra įvairių lygmenys, kurie gali turėti įtakos, siunčiami paketai. Norėdami nustatyti, jei tinklo įrenginys yra pašalinti slapuką, jūs turite užfiksuoti tinklo brėžinys kliento ir serverio, ir tada ieškoti slapukas prašymas turinyje. Norite ieškoti kliento užklausą įsitikinkite, kad slapukas buvo išsiųstas ir patikrinkite, ar serverio sekimas, įsitikinkite, kad serveris gavo slapukas.

Kliento užklausa

Tai užklausą gauti po autentifikuotas vartotojas. Formų autentifikavimas bilieto informaciją, yra paryškinamas mėlyna. Tai reiškia, kad slapuko informacijos kairėje kliento. Kai naudojate tinklo surinkimo įrankį, pvz., Netmon, pamatysite srautą, kuris iš tikrųjų vyko adapteris.

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/FormsAuthLo
67 54 65 73 74 2f 57 65-62 46 6f 72 6d 31 2e 61 gTest/WebForm1.a
73 70 78 20 48 54 54 50-2f 31 2e 31 0d 0a 41 63 spx HTTP/1.1..Ac
63 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: .AS
50 58 41 55 54 48 3d 33-43 45 46 39 42 39 41 30 PXAUTH=3CEF9B9A0
43 33 37 41 44 46 36 33-45 36 42 44 33 37 42 36 C37ADF63E6BD37B6
39 43 44 41 32 35 30 30-30 46 38 30 37 32 38 46 9CDA25000F80728F
35 31 43 39 35 36 36 44-31 34 43 35 34 31 34 35 51C9566D14C54145
38 31 43 39 33 45 32 41-30 31 44 44 43 44 45 46 81C93E2A01DDCDEF
32 34 41 31 37 34 32 39-34 31 30 43 30 39 37 34 24A17429410C0974
42 33 45 43 42 30 36 34-32 32 38 45 33 35 33 39 B3ECB064228E3539
39 41 38 32 32 42 33 42-39 33 36 44 46 30 38 46 9A822B3B936DF08F
42 41 42 44 33 45 31 30-32 44 30 30 32 31 30 43 BABD3E102D00210C
32 45 31 33 39 38 30 37-39 42 32 33 35 32 39 46 2E1398079B23529F
34 46 35 44 37 34 41 3b-20 50 72 6f 66 69 6c 65 4F5D74A; Profile
3d 56 69 73 69 74 6f 72-49 64 3d 62 32 34 65 62 =VisitorId=b24eb

Serverio užklausa

Kai peržiūrite užklausą, kad serveris, norite, įsitikinkite, kad serveris gavo tą pačią informaciją, kad klientas. Jei serveris negavo tą pačią informaciją, jums reikia ištirti kitų įrenginių tinkle nustatyti, jei slapukas buvo pašalintas.

Pastaba. Taip pat buvo pašalinti slapukus ISAPI filtrų egzempliorius. Jei patvirtinti, kad žiniatinklio serveris, gavo slapuką, bet slapukas IIS žurnale nėra, patikrinkite, ar ISAPI filtrų. Jums gali tekti pašalinti filtrus, norėdami pamatyti, ar problema išspręsta.

Formų autentifikavimas bilietų skirtasis laikas

Kiti dažniausiai vartotojui, norinčiam būti nukreipta problemą sukelia jei formų autentifikavimas bilieto galiojimo laikas baigėsi. Formų autentifikavimas bilietų galite dviem būdais skirtasis laikas. Pirmasis atvejis kyla, jei naudojate absoliutusis galiojimo pabaigos. Absoliutusis galiojimas, su autentifikavimo bilietas baigs galioti, kai galiojimo laikas baigiasi. Pvz., galite nustatyti, praėjus 20 minučių ir vartotojas lankosi svetainėje 2:00 val. Vartotojo būsite nukreipti į prisijungimo puslapį, jei vartotojas lankosi svetainėje po 14:20:00.

Jei naudojate stumdomas galiojimo, scenarijus yra šiek tiek sudėtingesnis. Jei vartotojas lankosi svetainėje po to, kai galiojimo laikas baigėsi pusiau atnaujinti slapuką ir dėl bilietų. Pvz., galite nustatyti, praėjus 20 minučių naudojant stumdomas galiojimo pabaigos. Vartotojas lankosi svetainėje 2:00 val, ir vartotojas gauna slapuką, kuris nustatytas kaip baigiasi 14:20:00. Pasibaigus atnaujinamas tik, jei vartotojas lankosi svetainėje po 2:22:00. Jei vartotojas lankosi svetainėje 2:09 pm, bilietas yra atnaujinti, nes pusę galiojimo laiko nebuvo sėkmingas. Jei vartotojas tada laukia 12 minučių, apsilankę svetainėje 2:21 pm, bilieto galiojimas. Vartotojas yra nukreipti į prisijungimo puslapį.

Vienas būdas metodas šio tipo problema – prisijungti formų autentifikavimo slapukų ir bilietų informaciją. Tokiu būdu, jūs galite pamatyti, jei slapukas gavo IIS ir reikšmės yra. Galite padaryti raštu, HttpModule, ir tada vėl modulio į užklausą srautas. Jums nereikės keisti savo programos kodą, kad galėtumėte gauti reikiamą informaciją.

Pridedamas pavyzdys dirba "Microsoft .NET Framework 1.1" ir ".NET Framework 2.0 ir komentarų. Pavyzdyje yra šie failai:Pastaba bus pateikti nuorodą, kodas, pateiktas FormsAuthLogger.zip faile.

Aš atkreipti dėmesį čia pagrindinėse srityse:


Kaip visada, galite pateikti idėjų temų norite ateityje stulpelių arba žinių bazėje naudojant toliau
Paprašykite jį forma.

Reikia daugiau pagalbos?

Norite daugiau parinkčių?

Sužinokite apie prenumeratos pranašumus, peržiūrėkite mokymo kursus, sužinokite, kaip apsaugoti savo įrenginį ir kt.

Bendruomenės padeda užduoti klausimus ir į juos atsakyti, pateikti atsiliepimų ir išgirsti iš ekspertų, turinčių daug žinių.

Ar ši informacija buvo naudinga?

Ar esate patenkinti kalbos kokybe?
Kas turėjo įtakos jūsų įspūdžiams?
Paspaudus mygtuką Pateikti, jūsų atsiliepimai bus naudojami tobulinant „Microsoft“ produktus ir paslaugas. Jūsų IT administratorius galės rinkti šiuos duomenis. Privatumo patvirtinimas.

Dėkojame už jūsų atsiliepimą!

×