Forstå billett for godkjenning av skjemaer og informasjonskapsler


ASP.NET-støtte stemme-kolonne


Forstå billett for godkjenning av skjemaer og informasjonskapsler

Hvis du vil tilpasse denne kolonnen til dine behov, ønsker vi å invitere deg til å sende dine ideer om emner som interesserer du og problemer som du ønsker å se i fremtidige adressert Knowledge Base-artikler og støtte stemme-kolonner. Du kan sende inn ideer og tilbakemeldinger ved hjelp av skjemaet Ber For den . Det finnes også en kobling til skjemaet nederst i denne kolonnen.

Introduksjon

Velkommen til Microsoft ASP.NET støtte stemme-kolonne! Jeg Nilay B. Shah med kundestøtteteamet for ASP.NET-utviklere. Jeg har arbeidet med ASP.NET-støtte for mer enn én og en halv år. Skjemagodkjenning er virkelig en kul godkjenning-funksjon. Denne artikkelen dekker noen problemer som brukere har funnet forvirrende med skjemagodkjenning, for eksempel forholdet mellom skjemaer godkjenningsbillett og skjemaer informasjonskapselen for godkjenning og de aktuelle innstillingene. Jeg ønsker å takke Jerry Orman, teknisk leder for ASP.NET-kundestøtteteamet for hans utrolige hjelp!

Mennesker noen ganger lurer på om godkjenning for skjemaer "billetter" og "informasjonskapsler" fordi de er nært beslektet. Jeg har kommet over spørsmål som disse: kan noen forklare forskjellen mellom informasjonskapselen utløpet og utløpsdato for billett? Når informasjonskapselen utløper, omdirigeres brukeren til påloggingssiden. Hva skjer når billett utløper? Vil det også være informasjonskapselen utløper? Hva SlidingUpdate faktisk oppdaterer?

Jeg vil fokusere på disse to aspekter av skjemagodkjenning i denne artikkelen for å svare på følgende spørsmål:
  • Hva er skjemaer billett for godkjenning og informasjonskapsler for godkjenning av skjemaene? Hvordan er de knyttet?
  • Hva er rollen til en billett i skjemagodkjenning?
  • Hvordan er informasjonskapselen utløper og utløpsdato for billett relatert?
  • Hvordan gjør glidende utløpstidspunkt arbeidet i forbindelse med billett for godkjenning av skjemaer og danner informasjonskapsel for godkjenning?
  • Der kan det angi egenskapen tidsavbrudd for informasjonskapsler for godkjenning av skjemaer og billett for godkjenning av skjemaene?
  • Problemet scenario: for skjemagodkjenning, kan bli tidsavbrutt før attributtet tidsavbruddsverdien som er angitt i konfigurasjonsfilen

Hva er skjemaer billett for godkjenning og informasjonskapsler for godkjenning av skjemaene? Hvordan er de knyttet?

Informasjonskapsel for godkjenning av skjemaene ikke er noe men beholder for billett for godkjenning av skjemaer. Billetten er sendt som verdien for informasjonskapselen for godkjenning av skjemaer med hver forespørsel og brukes av skjemagodkjenning på serveren, til å identifisere en godkjent bruker.

Men hvis vi velger å bruke uten informasjonskapsel skjemagodkjenning, sendes billetten i URL-adressen i et kryptert format. Uten informasjonskapsel skjemagodkjenning brukes fordi noen ganger klienters Web-lesere blokkere informasjonskapsler. Denne funksjonen er innført i Microsoft .NET Framework 2.0.

Hvis du vil ha mer informasjon, kan du gå til følgende webområde for Microsoft Developer Network (MSDN):

Hva er rollen til en billett i skjemagodkjenning?

Skjemaer godkjenningsbilletten brukes til å fortelle hvem du er ASP.NET-program. Billetten er derfor byggeblokk for Skjemagodkjennings sikkerhet.

Billetten er kryptert og signert ved hjelp av elementet < machineKey > konfigurasjon av serverens Machine.config-filen. ASP.NET 2.0 bruker decryptionKey og nye attributter for dekryptering av < machineKey > -elementet til å kryptere billetter for godkjenning av skjemaer. Attributtet dekryptering lar deg angi krypteringsalgoritmen som skal brukes. ASP.NET 1.1 og 1.0 bruker 3DES-kryptering, som ikke er konfigurerbar. Forfalskning av billett verdien bestemmes av en feil å dekryptere billetten på serveren. Som et resultat, omdirigeres brukeren til påloggingssiden.


Hvis programmet er distribuert i en webfarm, må du kontrollere at konfigurasjonsfiler på hver server deler samme verdi for attributtene validationKey og decryptionKey i < machineKey > -koden som brukes for nummerering (hashing) og dekryptering av billetten henholdsvis. Du må gjøre dette fordi du ikke kan garantere hvilken server behandler etterfølgende forespørsler. Hvis du vil ha mer informasjon om FormsAuthenticationTicket -kryptering og Web farm Distribusjonsvurderinger, kan du gå til følgende MSDN-webområde:En gjennomgang av metoder for å generere nøkler manuelt kan finnes i følgende Microsoft Knowledge Base-artikler:
312906 hvordan å opprette nøkler ved hjelp av Visual C# .NET for bruk i skjemagodkjenning

313091 hvordan å opprette nøkler ved hjelp av Visual Basic .NET for bruk i skjemagodkjenning

Skjemaer godkjenningsbilletter kan genereres manuelt ved hjelp av klassen FormsAuthenticationTicket . Hvis du vil ha mer informasjon, kan du gå til følgende MSDN-webområde:

Hvordan er informasjonskapselen utløper og utløpsdato for billett relatert?

Hvis det er ikke-fast informasjonskapsel, hvis billett er utløpt, informasjonskapselen utløper også, og brukeren omadresseres til påloggingssiden. På den andre siden, hvis billetten er merket som faste der informasjonskapselen er lagret på klient-boksen kan lesere bruke samme informasjonskapselen for godkjenning til å logge på webområdet for hver gang. Vi kan imidlertid bruke FormsAuthentication.SignOut -metoden til å slette fast eller ikke-faste informasjonskapsler eksplisitt.

Hvis du vil ha mer informasjon om FormsAuthentication.SignOut -metoden, kan du gå til følgende MSDN-webområde:Hvis leseren er lukket, billetten er tapt uten informasjonskapsel skjemagodkjenning, og vil bli generert en ny billett ved neste forespørsel.

Hvordan gjør glidende utløpstidspunkt arbeidet i forbindelse med billett for godkjenning av skjemaer og danner informasjonskapsel for godkjenning?

Glidende utløpstidspunkt fungerer nøyaktig på samme måte!

La oss ta et eksempel: Hvis det er tilgang til påloggingssiden på 5:00 00:00:00 PM, det skal utløpe på 5:10 00:00:00 PM hvis attributtet for tidsavbrudd er 10 og attributtet slidingExpiration er satt til TRUE. Hvis noen besøker websiden på nytt på 5:05 nå 00:00:00 PM, informasjonskapsler og tidsavbrudd for billett vil bli tilbakestilt til 5 15:00:00: 00 PM.

Obs! Hvis Web-siden åpnes før halvparten av tiden går utløp, tilbakestilles ikke utløpstiden billett. Forgrunnsfarge eksempel, hvis en webside åpnes på nytt på 5:04 00:00:00 PM, informasjonskapsler og tidsavbrudd for billett vil ikke bli tilbakestilt.

Hvis du vil ha mer informasjon, kan du gå til følgende MSDN-webområde:

Der kan det sette verdien for tidsavbrudd for informasjonskapsler for godkjenning av skjemaer og billett for godkjenning av skjemaene?

Det er den eneste innstillingen som du kan gjøre i Web.config-filen, eller filen Machine.config i < skjemaer > -koden. Denne endringen vil bestemme tidsavbruddsperioden for skjemagodkjenning i konteksten av en billett eller informasjonskapselen med mindre billetten opprettes manuelt.

<!--forms Attributes: 
name="[cookie name]" - Sets the name of the cookie used for Forms Authentication.
loginUrl="[url]" - Sets the URL to redirect client to for authentication.
protection="[All|None|Encryption|Validation]" - Sets the protection mode for data in cookie.
timeout="[minutes]" - Sets the duration of time for cookie to be valid (reset on each request).
path="/" - Sets the path for the cookie.
requireSSL="[true|false]" - Should the forms authentication cookie be sent only over SSL?
slidingExpiration="[true|false]" - Should the forms authentication cookie and ticket be reissued if they are about to expire?
-->
Hvis du vil ha mer informasjon, kan du gå til følgende MSDN-webområde:Hvis billetten er generert manuelt ved hjelp av FormsAuthenticationTicket -klassen, angis tidsavbruddet ved hjelp av attributtet utløp . Denne verdien overstyre verdien for tidsavbrudd -attributt angitt i konfigurasjonsfilene.

Hvis du vil ha mer informasjon om FormsAuthenticationTicket medlemmer, kan du gå til følgende MSDN-webområde:

Problemet scenario: for skjemagodkjenning, kan bli tidsavbrutt før attributtet tidsavbruddsverdien som er angitt i konfigurasjonsfilen

Hvis godkjenningsbilletten skjemaer opprettes manuelt, vil egenskapen tidsavbrudd for billett overstyre verdien som er angitt i konfigurasjonsfilen. Derfor, slik at hvis verdien er mindre enn verdien i konfigurasjonsfilen, attributtet skjemaene godkjenningsbillett utløper før konfigurasjonen fil tidsavbrudd verdi, og omvendt. La oss anta for eksempel at attributtet fortidsavbrudd for < skjemaer >er satt til 30 i Web.config-filen og utløpsverdien for billetten er satt til 20 minutter. I dette tilfellet skjemaer godkjenningsbillett utløper etter 20 minutter, og brukeren må logge seg igjen etter at.

Beslektede koblinger

910439 feilsøke skjemagodkjenning

891032 feilsøking av ASP.NET

301240 hvordan du implementerer skjemabasert godkjenning i ASP.NET-program ved hjelp av C# .NET

308157 hvordan du implementerer skjemabasert godkjenning i ASP.NET-program ved hjelp av Visual Basic .NET

Jeg håper du finner denne informasjonen nyttig gir enklere noen av forvirring involvert med ASP.NET-skjemaer godkjenningsbillett og informasjonskapsler. Husk at støtte stemme-kolonnene er for deg! Som alltid, sende inn ideer om emner du vil gjerne omtalt i fremtidige kolonner eller i Microsoft Knowledge Base ved hjelp av
Be For det skjemaet.