ASP .NET podporu hlasovej stĺpca

Riešenie problémov s overovanie formulárov

Prispôsobiť tento stĺpec vašim potrebám, chceme vás odošlite svoje nápady o témach, ktoré zaujímajú vás a otázky, ktoré chcete zobraziť riešiť pri budúcom články databázy Knowledge Base a podporu hlasovej stĺpce. Odošlite svoje nápady a pripomienky pomocou požiadať formulár. Existuje aj odkaz na formulár v spodnej časti tohto stĺpca.

Vitajte v stĺpci ASP.NET podporu hlas! Moje meno je Jerry Orman. Microsoft bol 5 rokov i majú venovaný väčšinu času Web-súvisiacich technológií, napríklad program Microsoft FrontPage a technológií Microsoft SharePoint. Som strávil posledný rok pracuje s Microsoft ASP.NET ako pracovník technickej podpory. Tento mesiac podporu hlas stĺpec budem vysvetliť riešenie overovanie formulárov Microsoft ASP.net.

Riešenie problémov s overovanie formulárov

Ak používate overovanie formulárov v aplikácii ASP.NET, môže byť potrebné na riešenie problému, ktorý sa vyskytuje, keď náhodne presmeruje používateľa na prihlasovaciu stránku. Ideálne svete by tento problém nastať spôsobom, ktorý by sa jednoducho pripojiť ladiaci nástroj a zachytiť problém. V produkčnom prostredí, ale ide zriedkavo. Náhodné problému tohto typu, musíte sa prihlásiť informácie týkajúce sa tak, že môžete zúžiť príčinu problému.

V tomto príspevku uvedieme krátko konceptu overovanie formulárov. Potom budeme hľadať situáciách, ktoré vedú k používateľ presmerovaný na prihlasovaciu stránku a zaznamenanie údajov, ktoré zodpovedajú izolovanie problému. Uvedieme aj ako implementovať IHttpModule rozhranie prihlásiť informácie overovanie formulárov.

Prehľad overovanie formulárov

Keď používateľ overuje webu pomocou overovanie formulárov, server vytvára cookie. Hodnotu cookie zašifrované formulárov overovania lístok. Cookie prechádza na každú požiadavku na aplikáciu servera a FormsAuthenticationModule dešifrovaní hodnotu cookie a používateľ alebo nie je platný.

Na základe predvoleného nastavenia sa pridá FormsAuthenticationModule triedy v súbore Machine.config. Trieda FormsAuthenticationModule spravuje proces FormsAuthentication.

Položka v súbore Machine.config je:

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

Všeobecné údaje http na overovanie pomocou overovanie formulárov vyzerá takto:

  1. Klient odošle HTTP GET Default.aspx. Neodosielajú žiadne formy overovania cookie.

  2. Server odošle odpoveď 302 (presmerovanie) Login.aspx.

  3. Klient odošle Login.aspx HTTP POST. Obsahuje prihlasovacie údaje.

  4. Server odošle odpoveď 302 (presmerovanie) Default.aspx. Overovanie formulárov cookie nachádza.

  5. Klient odošle HTTP GET Default.aspx. Toto zahŕňa formulárov overovania cookie.

Ďalšie informácie o vykonávaní a overovanie formulárov, nájdete na nasledujúcich webových lokalitách MSDN:

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).aspxĎalšie informácie o zdieľaní tvorí overovania cookie nájdete ASP.NET webovej lokalite:

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

Dôvody, že používateľ môže presmerovaný na prihlasovaciu stránku

Stráca formulárov overovania cookie

Scenár 1


V takomto prípade sa používateľ prihlási na webovú lokalitu. V určitom bode klient odošle požiadavku na server, a
FormsAuthenticationModule trieda neprijíma cookies. Môžete určiť, ak používateľom neobsahuje cookie zapnutím cookie zapisovanie do Microsoft Internet Information Services (IIS). Chcete urobiť, postupujte nasledovne:

  1. Otvorte IIS Microsoft Management Console (MMC).

  2. Kliknite pravým tlačidlom myši na webovej lokalite a potom kliknite na tlačidlo
    Vlastnosti.

  3. Kliknite na kartu webovej lokality a kliknite na tlačidlo Povoliť zapisovanie do denníka.

  4. Uistite sa, že formát denníka je W3C rozšírený formát súboru denníka.

  5. Kliknite na položku Vlastnosti.

  6. Kliknite na kartu Spresnenie a potom kliknite na
    Rozšírené vlastnosti.

  7. Rozšírené vlastnosti, kliknutím začiarknite políčko Cookie(cs(Cookie)) a Referer (cs(Referer)) políčko.

Sa vyskytne tento problém, určite, ktoré klient mal problém a adresy IP klienta. Filtrovanie denníka služby IIS na adresu IP klienta a zobraziť v stĺpci <cookie>.

Poznámka: Môžete použiť na analýzu Log analyzovať denníky IIS. Stiahnuť denníka Parser, nájdete na webovej lokalite spoločnosti Microsoft:

http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07Po zoznamu tohto konkrétneho používateľa, vyhľadajte požiadavky na prihlasovacej stránke. Viete, boli presmerovaní na túto stránku a chcete zobraziť požiadavky pred presmerovanie. Ak podobná nasledovnej klienta buď neodoslali cookies alebo cookies bol odstránený v sieti medzi klientom a serverom.

Ide o pôvodné prihlasovacie údaje.

Metóda

Stránka

Odpoveď

Súbory "cookie"

ZÍSKAJTE

/Default.aspx

302 (presmerovanie)

Žiadne súbory "cookie"

ZÍSKAJTE

/Login.aspx

200 (úspech)

Žiadne súbory "cookie"

PRÍSPEVOK

/Login.aspx

302 (presmerovanie)

Žiadne súbory "cookie"

ZÍSKAJTE

/Default.aspx

200 (úspech)

.ASPXAUTH

ZÍSKAJTE

/SomePage.aspx

302 (presmerovanie)

nie. ASPXAUTH Cookie

Ide o iné požiadavky, nasleduje požiadavka na stránku na lokalite bez. ASPXAUTH cookie.

Metóda

Stránka

Odpoveď

Súbory "cookie"

ZÍSKAJTE

/SomePage.aspx

302 (presmerovanie)

nie. ASPXAUTH Cookie

ZÍSKAJTE

/Login.aspx

200 (úspech)

nie. ASPXAUTH Cookie

PRÍSPEVOK

/Login.aspx

302 (presmerovanie)

nie. ASPXAUTH Cookie

ZÍSKAJTE

/SomePage.aspx

200 (úspech)

.ASPXAUTH


Poznámka: Prvá žiadosť používateľ nie je pravdepodobne formulárov overovania cookie Ak vytvárate trvalých súborov cookie. Denník služby IIS sa zobrazia len súbory cookie, ktoré boli prijaté v požiadavke. Požiadavky prvej požiadavky na formulárov overovania cookie budú po prihlásení pokus.

Scenár 2


Formulárov overovania cookie môžete stratiť, keď klient cookie limitu. V programe Microsoft Internet Explorer je limit 20 súborov cookie. Po vytvorení 20 cookie na strane klienta predchádzajúce súbory cookie sa odstránia z kolekcie klienta. Ak. ASPXAUTH cookie sa odstráni, používateľ budete presmerovaní na prihlasovaciu stránku pri spracovaní ďalšie požiadavky.

Tieto dva scenáre môžete riešiť rovnakým spôsobom. Pozrite sa na požiadanie pred presmerovaní na prihlasovaciu stránku. Ak požiadavka na stránku vygeneruje cookie, bude to niečo zistiť.

Ďalšie informácie získate po kliknutí na nasledujúce číslo článku publikovaného v databáze Microsoft Knowledge Base:

Obmedzenia veľkosti súborov cookie v programe Internet Explorer a 306070 číslo


Fiddler možno zobraziť hlavičky HTTP, ktoré sa odosielajú klientom. Po zachytiť prevádzku, dvakrát kliknite na požiadavky a kliknite na tlačidlo hlavičky zobrazíte hlavičky súboru Cookie. Ak môžete sledovať prihlásení uvidíte súbor Cookie hlavičky odozvy prihlásení.

Stiahnuť Fiddler, navštívte Fiddler webovej lokalite:

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

Scenár 3


Po žiadosti ponecháva klienta, sa rôznych vrstiev, ktoré môžu ovplyvniť pakety, ktoré sa odosielajú. Určiť, ak sieťové zariadenia je odstránenie súborov cookie, musíte zachytiť sledovanie siete klienta a servera, a vyhľadajte v žiadosti o cookie. Chcete pozrieť uistite sa, že cookie poslal požiadavku klienta a skontrolujte trasovanie server uistite sa, že server prijal cookie.

Požiadavka klienta

Toto je požiadavka GET po overenie používateľa. Údaje formulárov overovania lístok je zvýraznené farbou. To potvrdzuje, že informácie zo súboru cookie zostáva klienta. Pri používaní siete zachytiť tool, ako Netmon, uvidíte, ktoré skutočne prešiel adaptér.

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

Požiadavky na strane servera

Keď požiadavka, že server, chcete uistite sa, že server prijal rovnaké informácie, ktoré klient odošle. Server nedostali rovnaké informácie, musíte preskúmať ostatné zariadenia v sieti zistiť, kde bol odstránený cookie.

Poznámka: Tiež boli prípady obslužných odstránenie súborov cookie. Ak sa uistíte, že webový server prijal cookie však cookie nie sú uvedené v denníku služby IIS, skontrolujte obslužných. Musíte odstrániť filtre a skontrolujte, či sa problém vyriešil.

Časový lístok overovanie formulárov

Najčastejšou príčinou používateľovi presmerovaní je, ak formulárov overovania lístok uplynula. Lístok overovanie formulárov môže uplynúť dvoma spôsobmi. Prvý scenár nastane, ak používate absolútna platnosti. S absolútne skončenia overovania lístok uplynie po uplynutí doby platnosti. Napríklad môžete nastaviť uplynutí 20 minút a návšteve lokality v 2:00. Používateľa budete presmerovaní na prihlasovaciu stránku Ak návšteve lokality po 14:20:00.

Ak používate posuvné uplynutie platnosti, scenár je trochu zložitejšie. Cookie a výsledné lístok sa aktualizujú, návšteve lokality po čas vypršania polovicu uplynula. Napríklad nastavíte pomocou posuvné skončenia platnosti 20 minút. Návšteve lokality v 2:00 a používateľovi cookie nastavené o 14:20:00. Uplynutie platnosti je aktualizovať, len ak návšteve lokality po 14:10:00. Ak návšteve lokality v 2:09 lístok sa neaktualizuje, pretože polovicu časovú neprešiel. Ak používateľ potom čaká 12 minút navštívite lokalitu na 2:21 PM, skončí lístok. Presmeruje používateľa na prihlasovaciu stránku.

Jedným zo spôsobov prístupu tento typ problému je prihlásiť formulárov overovania cookie a lístok informácie. Tak vidíte, ak ste prijali cookie službou IIS a hodnoty. Môžete to písanie HttpModulea potom tento modul do požiadavky kanála. Nemáte zmeniť kód aplikácie získať informácie, ktoré potrebujete.

Pripojené vzorky pracuje v Microsoft .NET Framework 1.1 alebo .NET Framework 2.0 a komentáre počas. Vzorka obsahuje nasledujúce súbory:Poznámka budem poskytovať odkaz kód v súbore FormsAuthLogger.zip.

Možno budete upozorniť hlavné:


Ako vždy, neváhajte a odošlite nápady na články, ktoré chcete riešiť v budúcich stĺpcoch alebo pri používaní databázy Knowledge Base
Požiadať formulár.

Potrebujete ďalšiu pomoc?

Rozšírte svoje zručnosti
Preskúmať školenie
Buďte medzi prvými, ktorí získajú nové funkcie
Pripojiť k Microsoft insiderov chcú

Boli tieto informácie užitočné?

Aká je podľa vás jazyková kvalita textu?
Čo sa vám páčilo, prípadne čo nie?

Ďakujeme za vaše pripomienky!

×