ASP .NET atbalsta balss kolonna
Problēmu novēršanas veidlapu autentifikācija
Pielāgot šo kolonnu jūsu vajadzībām, mēs vēlaties uzaicināt iesniegt savas idejas par tēmām, kas interesē jūs un problēmas, kuru vēlaties apskatīt nākotnē risināt zināšanu bāzes raksti un atbalsta balss kolonnas. Jūs varat iesniegt savas idejas un atsauksmes veidlapu Uzdot to . Ir arī saite uz formas kolonnas apakšā.
ASP.NET atbalsta balss kolonnu sveicināts! Mani sauc Jerry Orman. Microsoft ir vairāk nekā 5 gadus un ir pavada lielāko daļu sava laika pievērsta jauno Microsoft SharePoint tehnoloģiju un saistītās Web tehnoloģijas, piemēram, Microsoft FrontPage. Ir patērēts, strādājot ar Microsoft atbalsta speciālistu, ASP.NET pēdējo gadu. Šajā mēnesī kolonnā atbalsta balss esmu gatavojas paskaidro, kā novērst Microsoft ASP.NET formu autentifikācijas.
Problēmu novēršanas veidlapu autentifikācija
Izmantojot formu autentifikācijas ASP.NET lietojumprogrammas, jūs varat atrast nepieciešams, lai novērstu problēmu, kas rodas, kad lietotājs ir novirzīts nejauši pieteikšanās lapa. Ideālā pasaulē, šī problēma radīsies tā, lai ļautu ir vienkārši pievienojiet atkļūdotāju un tveršana problēma. Ražošanas vidē, tomēr tas ir reti gadījumā. Novērst dažādus problēmu, piemēram, šis, jāveic pieteikšanās informāciju par problēmu, lai varētu sašaurināt cēloni.
Šajā rakstā mēs īsi uz koncepcijas veidlapu autentifikācija. Mēs tad izpētīt lietotāja pieteikšanās lapa tiek atvērta kāda gadījumos radīt un kā fiksēt dati, kas attiecas uz izolēt problēmu. Mēs arī uz to, kā ieviest IHttpModule interfeiss pieteikšanās formu autentifikācijas informāciju.Pārskatu veidlapu autentifikācija
Kad lietotājs autentificē vietnei, izmantojot veidlapu autentifikācija, serveris izveido sīkfails. Sīkfailu vērtība ir šifrēts veidlapu autentifikācijas biļete. Sīkfailu serverim nodots katra pieprasījuma lietojumprogrammu un FormsAuthenticationModule klases atšifrē sīkfailu vērtību un nosaka, ja lietotājs ir derīgs.
Pēc noklusējuma tiek pievienota FormsAuthenticationModule klases failā Machine. Klases FormsAuthenticationModule pārvalda FormsAuthentication procesu. Šī ir ieraksts Machine failu:<httpModule> …other modules…
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" /> …other modules… </httpModule>
Vispārīga HTTP trafiku, lai autentificētu, izmantojot formu autentifikācijas izskatās līdzīgs šim:
-
Klients sūta HTTP GET ar default. aspx. Tiek nosūtīts no formas autentificēšanas sīkfailu.
-
Serveris nosūta Login.aspx 302 atbildi (novirzīt).
-
Klients sūta HTTP POST Login.aspx. Tas ietver pieteikšanās informācija.
-
Serveris nosūta ar default. aspx 302 atbildi (novirzīt). Veidlapu autentifikācija cookie ir iekļauta.
-
Klients sūta HTTP GET ar default. aspx. Tas ietver veidlapu autentifikācija cookie.
Lai iegūtu papildinformāciju par ieviešana un izmantošana veidlapu autentifikācija, apmeklējiet šo MSDN Web vietu:
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).aspxLai iegūtu papildinformāciju par koplietošanas veidlapu autentifikācijas sīkfailus, apmeklējiet šo ASP.NET Web vietu:
http://quickstarts.asp.net/QuickStartv20/aspnet/doc/security/formsauth.aspx
Iemesli, lietotājs var tikt novirzīts uz pieteikšanās lapa
Veidlapu autentifikācija sīkfails tiek zaudēts
1. scenārijs
Šādā gadījumā lietotājs piesakās Web vietā. Kādā brīdī klients nosūta pieprasījumu serverim, un FormsAuthenticationModule klases nesaņem sīkfailu. Ja lietotāja pieprasījumu, iespējojot sīkfailu, piesakoties Microsoft interneta informācijas pakalpojumi (IIS) neietver sīkfailu var noteikt. Lai to paveiktu, rīkojieties šādi:
-
Atveriet IIS Microsoft pārvaldības konsoles (MMC).
-
Ar peles labo pogu noklikšķiniet uz vietnes un pēc tam noklikšķiniet uz
Rekvizītus. -
Noklikšķiniet uz cilnes Web vietu un pēc tam noklikšķiniet uz Iespējot reģistrēšanu.
-
Pārliecinieties, vai žurnāla formāts ir W3C paplašinātā žurnāla faila formātā.
-
Noklikšķiniet uz Rekvizīti.
-
Noklikšķiniet uz cilnes papildu un pēc tam noklikšķiniet uz
Paplašinātie rekvizīti. -
Saskaņā ar Paplašināto rekvizītus, noklikšķiniet, lai atzīmētu izvēles rūtiņu Cookie(cs(Cookie)) un Referer (cs(Referer)) izvēles rūtiņu.
Kad rodas šī problēma, nosakiet, kurš klients ir problēma un ka klienta IP adrese. Filtru IIS žurnālā, ka klienta IP adrese un skatīt <sīkfailu> kolonnas.
Piezīme. Varat izmantot Log Parser parsēt IIS žurnālos. Lai lejupielādētu Log Parser, apmeklējiet šo Microsoft Web vietu:http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07Pēc tam, kad esat šo konkrēto lietotāju pieprasījumu sarakstu, meklējiet pieteikšanās lapa pieprasījumus. Jūs zināt tās tikāt novirzīts uz šo lapu un vēlaties skatīt pieprasījumus pirms novirzīšana. Ja redzat kaut kas līdzīgs šim klientam vai nu neesat sūtījis šos sīkfailus vai sīkfailu noņēma tīklā starp klientu un serveri. Tā sākotnējo pieteikšanās.
Metode |
Lapa |
Atbilde |
Sīkfaili |
IEGŪSTIET |
/Default.aspx |
302 (novirzīt) |
Neviens sīkfails |
IEGŪSTIET |
/Login.aspx |
200 (veiksmīgi) |
Neviens sīkfails |
ZIŅAS |
/Login.aspx |
302 (novirzīt) |
Neviens sīkfails |
IEGŪSTIET |
/Default.aspx |
200 (veiksmīgi) |
.ASPXAUTH |
IEGŪSTIET |
/SomePage.aspx |
302 (novirzīt) |
nē. ASPXAUTH sīkfails |
Tie ir citi pieprasījumi seko pieprasījumu lapa vietnē bez. ASPXAUTH sīkfailu.
Metode |
Lapa |
Atbilde |
Sīkfaili |
IEGŪSTIET |
/SomePage.aspx |
302 (novirzīt) |
nē. ASPXAUTH sīkfails |
IEGŪSTIET |
/Login.aspx |
200 (veiksmīgi) |
nē. ASPXAUTH sīkfails |
ZIŅAS |
/Login.aspx |
302 (novirzīt) |
nē. ASPXAUTH sīkfails |
IEGŪSTIET |
/SomePage.aspx |
200 (veiksmīgi) |
.ASPXAUTH |
Piezīme. Pirmā pieprasījuma lietotājam nav var būt veidlapu autentifikācija cookie, izņemot gadījumus, kad veidojat Pastāvīgais sīkfails. IIS žurnālā tikai parādīs sīkfailus, kas tika saņemts pieprasījums. Pēc veiksmīgas pieteikšanās mēģinājums pirmā pieprasījuma veidlapu autentifikācija cookie ir būs pieprasījums.
2. scenārijs
Veidlapu autentifikācija cookie arī var tikt zaudēts, klienta sīkfailu limits. Microsoft Internet Explorer ir ierobežojums 20 sīkfailus. Pēc klienta izveides 20 sīkfailu iepriekšējo sīkfaili tiek noņemti no klienta kolekcijas. Ja. ASPXAUTH sīkfails tiek noņemta, lietotāju pieteikšanās lapa tiks atvērta apstrādājot nākamo pieprasījumu. Tādā pašā veidā var novērst šie divi scenāriji. Meklēt pēc pieprasījuma tieši pirms novirzīšana uz pieteikšanās lapa. Ja šajā lapā pieprasījumu ģenerē sīkfailus, tas būs kaut kas izpētītu. Lai iegūtu papildinformāciju, noklikšķiniet uz šī raksta numura un lasiet Microsoft zināšanu bāzes rakstu:
306070 numurs un lieluma ierobežojumi programmā Internet Explorer sīkfailu Fiddler var izmantot, lai skatītu, klients sūta HTTP galvenes. Pēc tvert trafiku, veiciet dubultklikšķi uz pieprasījumu un pēc tam noklikšķiniet uz galvenes var redzēt galveni Set-Cookie. Ja izsekot veiksmīgas pieteikšanās, jūs redzēsit veiksmīgas pieteikšanās atbildes galveni Set-Cookie. Lai lejupielādētu Fiddler, apmeklējiet šo Fiddler Web vietu:
3. scenārijs
Pēc pieprasījuma lapas klients, ir dažādu slāņu, kas var ietekmēt šīs paketes tiek sūtītas. Lai noteiktu, ja tīkla ierīces noņem sīkfailu, ir tvert tīkla trasēšana klienta un servera un pēc tam skatiet pieprasījumam par sīkfailu. Vēlaties apskatīt klienta pieprasījumu nodrošinātu sīkfailu tika nosūtīts un pārbaudiet servera izsekošana un pārliecinieties, ka serveris saņēmis cookie. Klienta pieprasījums Tas GET pieprasījumus pēc tam, kad lietotājs ir autentificēts. Veidlapu autentifikācija biļešu informācija tiek izcelts zilā krāsā. Tas apliecina sīkfailu informāciju kreisais klients. Lietojot tīkla tveršanas rīks, kā Netmon, tiek parādīts trafiku, kas faktiski caur adapteri.
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
Servera puses pieprasījums
Skatot pieprasījumu, kas sasniegts servera vēlaties pārliecinieties, ka serveris saņēmis tā pati informācija, kas nosūtīta klientam. Ja serveris nav saņēmis tā pati informācija, jums izpētīt citas ierīces tīklā nosaka, kad sīkfails ir noņemts. Piezīme. Tie ir ISAPI filtru noņemšana sīkfailu gadījumus. Ja esat pārliecinājies, ka Web serveris saņēma sīkfailu, bet sīkfailu IIS žurnālos nav norādīta, pārbaudiet ISAPI filtru. Iespējams, vajadzēs noņemt filtru, lai pārbaudītu, vai problēma ir novērsta.Veidlapu autentifikācijas biļete iestājies taimauts
Citu lietotāju tiksit novirzīts bieži iemesls ir ja veidlapu autentifikācijas biļete ir beidzies. Veidlapu autentifikācija biļeti var iestāties taimauts divos veidos. Pirmajā gadījumā rodas, ja izmantojat absolūtā derīguma. Ar absolūto derīguma autentifikācijas biļete derīguma termiņš beidzas derīguma laiku. Piemēram, iestatot derīguma termiņu no 20 minūtēm un lietotājam apmeklējot vietni no 2:00. Lietotāja pieteikšanās lapa tiks atvērta, ja lietotājs apmeklē vietni pēc 2:20 PM.
Ja izmantojat bīdāmās derīguma, scenārijs ir mazliet sarežģītāka. Sīkfailu un rezultātā biļete tiek atjaunināts, ja lietotājs apmeklē vietni pēc pusgada beidzies derīguma laiku. Piemēram, iestatot derīguma termiņu no 20 minūtēm, izmantojot slīdošu derīguma. Lietotājam apmeklējot vietni no 2:00, un lietotājs saņem sīkfailu, ja tā ir iestatīta beidzas pie 2:20. Derīguma tiek atjaunināts tikai, ja lietotājs apmeklē vietni pēc 2:10 PM. Ja lietotājs vietu apmeklējumus 2:09 PM, biļeti nav atjaunināts, jo pusi no derīguma laiku, nav tikusi pakļauta. Ja lietotājs pēc tam gaida 12 minūtes, apmeklējot vietni pie 2:21, biļete ir beidzies. Lietotājs tiek novirzīti uz pieteikšanās lapu. Viens veids, kā pieeja šāda veida problēmu ir pieteikšanās veidlapu autentifikācija cookie un biļešu informācija. Tādējādi var redzēt, ja sīkfailu saņēma IIS un vērtības ir. To var izdarīt, rakstot HttpModuleun pēc tam pievienojot modulī pieprasījumu konveijers. Nav jāmodificē jūsu lietojumprogrammu kodu, lai saņemtu nepieciešamo informāciju. Pievienotā paraugā darbojas Microsoft .NET Framework 1.1 un .NET Framework 2.0 un visu komentāru. Parauga ietver šādus failus:Piezīme jums nodrošina lejupielādes saites koda atrodama FormsAuthLogger.zip failu. Es norādīt šeit galvenajām jomām:Jautājiet to formā.
Kā vienmēr, lūdzu, iesniegt idejas jautājumos vēlaties risināt nākotnē kolonnas vai zināšanu bāzē, izmantojot