HttpSessionState.IsCookieless Egenskap

Definition

Hämtar ett värde som anger om sessions-ID:t är inbäddat i URL:en eller lagras i en HTTP-cookie.

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

Egenskapsvärde

trueom sessionen är inbäddad i URL:en; annars . false

Exempel

I följande kodexempel anges sessionsattributet cookieless till true i Web.config-filen.

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

Kommentarer

ASP.NET identifierar sessioner unikt med varje webbläsare. Som standard lagras den unika identifieraren för en session i en sessionscookie som inte upphör att gälla i webbläsaren. Du kan ange att sessionsidentifierare inte ska lagras i en cookie genom att ange cookieless attributet till true i konfigurationselementet sessionState .

Note

För att förbättra säkerheten för ditt program bör programmet tillåta användare att logga ut, då det ska anropa Abandon metoden. Detta minskar risken för att en oönskad källa använder den unika identifieraren i URL:en för att hämta privata data som lagras i sessionen för en användare.

ASP.NET upprätthåller cookielöst sessionstillstånd genom att automatiskt infoga ett unikt sessions-ID i sidans URL. Följande URL har till exempel ändrats av ASP.NET för att inkludera det unika sessions-ID:t lit3py55t21z5v55vlm25s55:

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

ASP.NET ändrar länkarna som finns på alla begärda sidor genom att bädda in ett sessions-ID-värde i länkarna precis innan varje sida skickas till webbläsaren. Sessionstillståndet bibehålls så länge användaren följer sökvägen till länkarna som webbplatsen tillhandahåller. Men om användaragenten skriver om en URL går sessionstillståndsinstansen förlorad.

Sessions-ID:t är inbäddat i URL:en efter snedstrecket som följer programnamnet och före eventuell återstående fil- eller virtual directory-identifierare. Detta gör att ASP.NET kan matcha programnamnet innan du involverar SessionStateModule i begäran.

Som standard återanvänds sessionsidentifierare som används i cookielösa sessioner. Om en begäran görs med ett sessions-ID som har upphört att gälla startas en ny session med det sessions-ID som medföljer begäran. Det här beteendet kan leda till oönskad delning av sessionsdata när en länk som innehåller ett cookielöst sessions-ID delas med flera webbläsare, kanske via en sökmotor eller annat program. Du kan minska risken för att sessionsdata delas av flera klienter genom att inaktivera återvinning av sessionsidentifierare. Det gör du genom regenerateExpiredSessionId att ange attributet för konfigurationselementet sessionState till true. Detta resulterar i att ett nytt sessions-ID genereras när en cookielös sessionsbegäran görs med ett utgånget sessions-ID. Observera att om begäran som görs med det utgångna sessions-ID:t använder metoden HTTP POST går alla publicerade data förlorade när regenerateExpiredSessionIdtrue, eftersom ASP.NET utför en omdirigering för att säkerställa att webbläsaren har den nya sessionsidentifieraren i URL:en.

Note

Om attributet anges regenerateExpiredSessionId till minskar risken för true oönskad delning av sessionsdata, men det skyddar inte mot att en oönskad källa får åtkomst till en annan användares session genom att SessionID hämta värdet och inkludera det i begäranden till servern. Om du lagrar privat eller känslig information i sessionstillstånd rekommenderar vi att du använder SSL för att kryptera all kommunikation mellan webbläsaren och servern som innehåller SessionID.

Gäller för

Se även