Aanmelden met Microsoft
Meld u aan of maak een account.
Hallo,
Selecteer een ander account.
U hebt meerdere accounts
Kies het account waarmee u zich wilt aanmelden.

ASP.NET ondersteuningskolom

Informatie over het formulierverificatieticket en de cookie

Als u deze kolom wilt aanpassen aan uw behoeften, nodigen we u uit om uw ideeën in te dienen over onderwerpen die u interesseren en problemen die u wilt zien behandeld in toekomstige Knowledge Base-artikelen en ondersteuningsstemkolommen. U kunt uw ideeën en feedback indienen met behulp van het formulier Vraag om het . Er is ook een koppeling naar het formulier onderaan deze kolom.

Inleiding

Welkom bij de kolom Microsoft ASP.NET Support Voice. Ik ben Nilay B. Shah bij het ASP.NET ontwikkelaarsondersteuningsteam. Ik werk al meer dan anderhalf jaar met ASP.NET ondersteuning. Forms Authentication is echt een handige verificatiefunctie. In dit artikel worden enkele problemen behandeld die gebruikers verwarrend vinden met formulierverificatie, zoals de relatie van het formulierverificatieticket en de formulierverificatiecooky en hun relevante instellingen. Ik wil Jerry Orman, technisch hoofd van het ASP.NET-ondersteuningsteam, bedanken voor zijn ongelooflijke hulp!

Mensen soms vragen over formulierverificatie 'tickets' en 'cookies' omdat ze nauw verwant zijn. Ik ben vragen tegengekomen zoals: Kan iemand het verschil uitleggen tussen het verlopen van de cookie en het verlopen van het ticket? Wanneer de cookie verloopt, wordt de gebruiker omgeleid naar de aanmeldingspagina. Wat gebeurt er wanneer het ticket verloopt? Verloopt de cookie hierdoor ook? Wat werkt SlidingUpdate eigenlijk bij?

In dit artikel richt ik me op deze twee aspecten van formulierverificatie om de volgende vragen te beantwoorden:

  • Wat is een formulierverificatieticket en een formulierverificatiecooky? Hoe zijn ze gerelateerd?

  • Wat is de rol van een ticket in formulierverificatie?

  • Hoe zijn het verlopen van cookies en het verlopen van tickets gerelateerd?

  • Hoe werkt een verschuifbare vervaldatum in de context van een verificatieticket voor formulieren en een cookie voor formulierverificatie?

  • Waar kan de time-outeigenschap van de formulierverificatiecooky en het formulierverificatieticket worden ingesteld?

  • Probleemscenario: er kan een time-out optreden voor de verificatie van formulieren vóór de waarde van het time-outkenmerk die is ingesteld in het configuratiebestand

Wat is een formulierverificatieticket en een formulierverificatiecooky? Hoe zijn ze gerelateerd?

De cookie voor formulierverificatie is niets anders dan de container voor formulierverificatietickets. Het ticket wordt bij elke aanvraag doorgegeven als de waarde van de formulierverificatiecooky en wordt gebruikt door formulierverificatie op de server om een geverifieerde gebruiker te identificeren.

Als we er echter voor kiezen om formulierverificatie zonder cookies te gebruiken, wordt het ticket in een versleutelde indeling doorgegeven in de URL. Verificatie van formulieren zonder cookies wordt gebruikt omdat soms de clientbrowsers cookies blokkeren. Deze functie is geïntroduceerd in microsoft .NET Framework 2.0.

Ga voor meer informatie naar de volgende MSDN-website (Microsoft Developer Network):

http://msdn2.microsoft.com/en-us/library/system.web.configuration.formsauthenticationconfiguration.cookieless.aspx

Wat is de rol van een ticket in formulierverificatie?

Het formulierverificatieticket wordt gebruikt om de ASP.NET toepassing te laten weten wie u bent. Het ticket vormt dus de bouwsteen van de beveiliging van Forms Authentication.

Het ticket is versleuteld en ondertekend met behulp van de <machineKey> configuratie-element van het Machine.config-bestand van de server. ASP.NET 2.0 gebruikt de decryptionKey en het nieuwe decoderingskenmerk van het element <machineKey> om formulierverificatietickets te versleutelen. Met het kenmerk ontsleuteling kunt u het te gebruiken versleutelingsalgoritmen opgeven. ASP.NET 1.1 en 1.0 gebruiken 3DES-versleuteling, die niet kan worden geconfigureerd. Manipulatie met de ticketwaarde wordt bepaald door een fout bij het ontsleutelen van het ticket op de server. Als gevolg hiervan wordt de gebruiker omgeleid naar de aanmeldingspagina.


Als de toepassing is geïmplementeerd in een webfarm, moet u ervoor zorgen dat de configuratiebestanden op elke server dezelfde waarde delen voor de kenmerken validationKey en decryptionKey in de tag <machineKey>, die respectievelijk worden gebruikt voor hashing en ontsleuteling van het ticket. U moet dit doen omdat u niet kunt garanderen welke server opeenvolgende aanvragen verwerkt. Ga naar de volgende MSDN-website voor meer informatie over FormsAuthenticationTicket-versleuteling en overwegingen voor webfarmimplementatie:

http://msdn2.microsoft.com/en-us/library/ms998288.aspxEen overzicht van methoden voor het handmatig genereren van sleutels vindt u in de volgende Microsoft Knowledge Base-artikelen:

312906 Sleutels maken met behulp van Visual C# .NET voor gebruik in formulierverificatie

313091 Sleutels maken met behulp van Visual Basic .NET voor gebruik in Forms Authentication

Formulierverificatietickets kunnen handmatig worden gegenereerd met behulp van de klasse FormsAuthenticationTicket. Ga voor meer informatie naar de volgende MSDN-website:

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthenticationticket.aspx

Hoe zijn het verlopen van cookies en het verlopen van tickets gerelateerd?

In het geval van een niet-permanente cookie, als het ticket is verlopen, verloopt de cookie ook en wordt de gebruiker omgeleid naar de aanmeldingspagina. Aan de andere kant, als het ticket is gemarkeerd als permanent, waarbij de cookie wordt opgeslagen in het clientvak, kunnen browsers op elk gewenst moment dezelfde verificatiecooky gebruiken om zich aan te melden bij de website. We kunnen echter de methode FormsAuthentication.SignOut gebruiken om permanente of niet-permanente cookies expliciet te verwijderen.

Ga naar de volgende MSDN-website voor meer informatie over de methode FormsAuthentication.SignOut:

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthentication.signout.aspxBij verificatie zonder cookies gaat het ticket verloren als de browser is gesloten en wordt er bij de volgende aanvraag een nieuw ticket gegenereerd.

Hoe werkt een verschuifbare vervaldatum in de context van een verificatieticket voor formulieren en een cookie voor formulierverificatie?

Glijdend verloop werkt op precies dezelfde manier!

Laten we een voorbeeld nemen: Als de aanmeldingspagina wordt geopend om 17:00 00:00:00 uur, verloopt deze om 17:10 00:00:00 uur als het time-outkenmerk 10 is en het kenmerk slidingExpiration is ingesteld op WAAR. Als een webpagina nu om 17:05 00:00:00 uur opnieuw wordt bekeken, wordt de time-outperiode voor cookies en tickets opnieuw ingesteld op 17:15 00:00:00 uur.

Opmerking Als de webpagina wordt geopend voordat de helft van de verlooptijd is verstreken, wordt de verlooptijd van het ticket niet opnieuw ingesteld. Als een webpagina bijvoorbeeld om 17:04 00:00:00 uur opnieuw wordt geopend, worden de time-outperiode voor cookies en tickets niet opnieuw ingesteld.

Ga naar de volgende MSDN-website voor meer informatie:

http://msdn2.microsoft.com/en-us/library/1d3t3c61(vs.71).aspx

Waar kan de time-outwaarde van de formulierverificatiecooky en het formulierverificatieticket worden ingesteld?

De enige instelling die u kunt maken, is in het Web.config-bestand of het Machine.config-bestand, in de <formulieren> tag. Deze wijziging bepaalt de time-outperiode van formulierverificatie in de context van een ticket of cookie, tenzij het ticket handmatig wordt gegenereerd.


<!--formulierkenmerken:
name="[cookienaam]" - Hiermee stelt u de naam in van de cookie die wordt gebruikt voor formulierverificatie.
loginUrl="[url]" - Hiermee stelt u de URL in waarnaar de client moet worden omgeleid voor verificatie.
protection="[Alle |Geen |Versleuteling |Validatie]" - Hiermee stelt u de beveiligingsmodus in voor gegevens in een cookie.
time-out="[minutes]" - Hiermee stelt u de duur van de tijd voor het cookie in op geldig (opnieuw instellen op elke aanvraag).
path="/" - Hiermee stelt u het pad voor de cookie in.
requireSSL="[true|false]" - Moet de formulierverificatiecooky alleen via SSL worden verzonden?
slidingExpiration="[true|false]" - Moeten de verificatiecookie en het ticket van formulieren opnieuw worden uitgegeven als ze op het punt staan te verlopen?
--> Ga naar de volgende MSDN-website voor meer informatie:

http://msdn2.microsoft.com/en-us/library/1d3t3c61.aspxAls het ticket handmatig wordt gegenereerd met behulp van de klasse FormsAuthenticationTicket, kan de time-out worden ingesteld via het kenmerk Vervaldatum. Deze waarde overschrijft de waarde van het time-outkenmerk dat is opgegeven in configuratiebestanden.

Ga naar de volgende MSDN-website voor meer informatie over FormsAuthenticationTicket-leden:

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthenticationticket_members.aspx

Probleemscenario: er kan een time-out optreden voor de verificatie van formulieren vóór de waarde van het time-outkenmerk die is ingesteld in het configuratiebestand

Als het formulierverificatieticket handmatig wordt gegenereerd, overschrijft de time-outeigenschap van het ticket de waarde die is ingesteld in het configuratiebestand. Als deze waarde kleiner is dan de waarde in het configuratiebestand, verloopt het verificatieticket voor formulieren vóór de waarde van het time-outkenmerk van het configuratiebestand en omgekeerd. We gaan er bijvoorbeeld van uit dat de <formulieren>time-outkenmerk is ingesteld op 30 in het Web.config-bestand en de vervaldatumwaarde van het ticket is ingesteld op 20 minuten. In dit geval verloopt het formulierverificatieticket na 20 minuten en moet de gebruiker zich daarna opnieuw aanmelden.

Gerelateerde koppelingen

910439 Problemen met formulierverificatie oplossen

891032 Problemen met ASP.NET oplossen

301240 Verificatie op basis van formulieren implementeren in uw ASP.NET-toepassing met behulp van C# .NET

308157 Hoe u verificatie op basis van formulieren implementeert in uw ASP.NET-toepassing met behulp van Visual Basic .NET

Ik hoop dat u deze informatie nuttig hebt gevonden bij het wegnemen van een deel van de verwarring die gepaard gaat met ASP.NET formulierverificatieticket en cookie. Vergeet niet dat de ondersteuningsstemkolommen voor u zijn. Zoals altijd kunt u ideeën indienen over onderwerpen die u wilt bespreken in toekomstige kolommen of in de Microsoft Knowledge Base met behulp van het
formulier Vraag om het .

Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.

Community's helpen u vragen te stellen en te beantwoorden, feedback te geven en te leren van experts met uitgebreide kennis.

Was deze informatie nuttig?

Hoe tevreden bent u met de taalkwaliteit?
Wat heeft uw ervaring beïnvloed?
Als u op Verzenden klikt, wordt uw feedback gebruikt om producten en services van Microsoft te verbeteren. Uw IT-beheerder kan deze gegevens verzamelen. Privacyverklaring.

Hartelijk dank voor uw feedback.

×