HttpSessionState.IsCookieless Eigenschap

Definitie

Hiermee wordt een waarde opgehaald die aangeeft of de sessie-id is ingesloten in de URL of is opgeslagen in een HTTP-cookie.

public:
 property bool IsCookieless { bool get(); };
public bool IsCookieless { get; }
member this.IsCookieless : bool
Public ReadOnly Property IsCookieless As Boolean

Waarde van eigenschap

true als de sessie is ingesloten in de URL; anders, false.

Voorbeelden

In het volgende codevoorbeeld wordt het cookieless sessiekenmerk ingesteld op true in het Web.config-bestand.

<configuration>
  <system.web>
    <sessionState
      mode="InProc"
      cookieless="true"
      regenerateExpiredSessionId="true"
      timeout="30" />
  </system.web>
</configuration>

Opmerkingen

ASP.NET identificeert sessies uniek met elke browser. Standaard wordt de unieke id voor een sessie opgeslagen in een niet-verlopende sessiecooky in de browser. U kunt opgeven dat sessie-id's niet in een cookie worden opgeslagen door het cookieless kenmerk true in te stellen in het sessionState-configuratie-element .

Note

Om de beveiliging van uw toepassing te verbeteren, moet uw toepassing gebruikers toestaan zich af te melden. Op dat moment moet de methode worden Abandon aangeroepen. Dit vermindert het potentieel voor een ongewenste bron met behulp van de unieke id in de URL om persoonlijke gegevens op te halen die zijn opgeslagen in de sessie voor een gebruiker.

ASP.NET de status van cookieloze sessies behoudt door automatisch een unieke sessie-id in de URL van de pagina in te voegen. De volgende URL is bijvoorbeeld gewijzigd door ASP.NET om de unieke sessie-id lit3py55t21z5v55vlm25s55 op te nemen:

http://www.example.com/(S(4danlfat035muve4g0mvgfrr))/orderform.aspx

ASP.NET wijzigt de koppelingen in alle aangevraagde pagina's door een sessie-id-waarde in te sluiten in de koppelingen net voordat elke pagina naar de browser wordt verzonden. Sessiestatus wordt gehandhaafd zolang de gebruiker het pad volgt van koppelingen die de site biedt. Als de gebruikersagent echter een URL herschrijft, gaat het exemplaar van de sessiestatus verloren.

De sessie-id wordt ingesloten in de URL na de slash die de naam van de toepassing volgt en vóór een resterende bestands- of virtuele map-id. Hierdoor kan ASP.NET de naam van de toepassing oplossen voordat de SessionStateModule in de aanvraag wordt gebruikt.

Sessie-id's die worden gebruikt in cookieloze sessies worden standaard gerecycled. Als er een aanvraag wordt gedaan met een sessie-id die is verlopen, wordt een nieuwe sessie gestart met behulp van de sessie-id die bij de aanvraag is opgegeven. Dit gedrag kan leiden tot het ongewenste delen van sessiegegevens wanneer een koppeling met een cookieloze sessie-id wordt gedeeld met meerdere browsers, mogelijk via een zoekmachine of een ander programma. U kunt de kans verkleinen dat sessiegegevens worden gedeeld door meerdere clients door het recyclen van sessie-id's uit te schakelen. Hiervoor stelt u het regenerateExpiredSessionId kenmerk van het sessionState-configuratie-element in op .true Dit resulteert in een nieuwe sessie-id die wordt gegenereerd wanneer er een cookieloze sessieaanvraag wordt gedaan met een verlopen sessie-id. Als de aanvraag met de verlopen sessie-id gebruikmaakt van de methode HTTP POST, gaan alle geplaatste gegevens verloren wanneer regenerateExpiredSessionId is true, omdat ASP.NET een omleiding uitvoert om ervoor te zorgen dat de browser de nieuwe sessie-id in de URL heeft.

Note

Hoewel het instellen van het regenerateExpiredSessionId kenmerk om true de kans op ongewenst delen van sessiegegevens te verminderen, wordt het niet beschermd tegen een ongewenste bron die toegang krijgt tot de sessie van een andere gebruiker door de SessionID waarde te verkrijgen en deze op te halen in aanvragen naar de server. Als u privé- of gevoelige informatie opslaat in de sessiestatus, is het raadzaam SSL te gebruiken om communicatie tussen de browser en server die de SessionID.

Van toepassing op

Zie ook