Freigeben über


HttpSessionState.IsCookieless-Eigenschaft

Ruft einen Wert ab, der angibt, ob die Sitzungs-ID im URL eingebettet oder in einem HTTP-Cookie gespeichert ist.

Namespace: System.Web.SessionState
Assembly: System.Web (in system.web.dll)

Syntax

'Declaration
Public ReadOnly Property IsCookieless As Boolean
'Usage
Dim instance As HttpSessionState
Dim value As Boolean

value = instance.IsCookieless
public bool IsCookieless { get; }
public:
property bool IsCookieless {
    bool get ();
}
/** @property */
public boolean get_IsCookieless ()
public function get IsCookieless () : boolean

Eigenschaftenwert

true, wenn die Sitzung im URL eingebettet ist, andernfalls false.

Hinweise

In ASP.NET wird jede Sitzung in jedem Browser eindeutig identifiziert. In der Standardeinstellung wird der eindeutige Bezeichner für eine Sitzung in einem Sitzungscookie ohne Ablaufdatum im Browser gespeichert. Sie können angeben, dass Sitzungsbezeichner nicht in Cookies gespeichert werden, indem Sie das cookieless-Attribut im sessionState-Konfigurationselement auf true festlegen.

Hinweis

Um die Sicherheit Ihrer Anwendung zu steigern, sollte eine Funktion zum Abmelden für Benutzer bereitstehen. Dabei sollte die Abandon-Methode aufgerufen werden. Hierdurch schmälern Sie das Risiko, dass eine böswillige Person den eindeutigen Bezeichner im URL zum Abrufen von privaten Daten verwendet, die für einen Benutzer in einer Sitzung gespeichert werden.

ASP.NET verwaltet den Sitzungszustand ohne Cookies, indem automatisch eindeutige Sitzungs-IDs in die URLs der Seiten eingefügt werden. Der folgende URL wurde von ASP.NET z. B. so bearbeitet, dass er die eindeutige Sitzungs-ID lit3py55t21z5v55vlm25s55 enthält:

http://www.example.com/(lit3py55t21z5v55vlm25s55)/orderform.aspx

ASP.NET ändert die auf den angeforderten Seiten enthaltenen Hyperlinks, indem unmittelbar vor dem Senden der jeweiligen Seite an den Browser ein Sitzungs-ID-Wert in die Hyperlinks eingebettet wird. Der Sitzungszustand wird beibehalten, so lange der Benutzer dem von der Site bereitgestellten Pfad von Hyperlinks folgt. Wenn der Benutzer-Agent einen URL jedoch neu schreibt, geht die Sitzungszustandsinstanz verloren.

Die Sitzungs-ID wird hinter dem Schrägstrich, der dem Anwendungsnamen folgt, und vor weiteren Bezeichnern von Dateien oder virtuellen Verzeichnissen in den URL eingefügt. Dadurch wird es ASP.NET ermöglicht, den Anwendungsnamen aufzulösen, bevor das SessionStateModule in die Anforderung einbezogen wird.

In der Standardeinstellung werden Sitzungsbezeichner in Sitzungen ohne Cookies wiederverwendet. Dies bedeutet, dass bei Anforderungen mit einer abgelaufenen Sitzungs-ID eine neue Sitzung mit der in der Anforderung angegebenen Sitzungs-ID gestartet wird. Dieses Verhalten kann zu einem unerwünschten gemeinsamen Zugriff auf Sitzungsdaten führen, wenn über verschiedene Browser auf einen Hyperlink mit einer ID für eine Sitzung ohne Cookies zugegriffen wird, z. B. über eine Suchmaschine oder ein anderes Programm. Sie können die Möglichkeit einschränken, dass mehrere Clients auf Sitzungsdaten zugreifen, indem Sie das Wiederverwenden von Sitzungsbezeichnern deaktivieren. Legen Sie hierzu das regenerateExpiredSessionId-Attribut des sessionState-Konfigurationselements auf true fest. Dadurch wird eine neue Sitzungs-ID generiert, wenn eine Anforderung für eine Sitzung ohne Cookies empfangen wird, die eine abgelaufene Sitzungs-ID enthält. Wenn in der Anforderung mit der abgelaufenen Sitzungs-ID die HTTP-POST-Methode verwendet wird und regenerateExpiredSessionIdtrue ist, gehen die gesendeten Daten verloren, weil ASP.NET eine Umleitung ausführt, um sicherzustellen, dass der Browser den neuen Sitzungsbezeichner im URL erhält.

Hinweis

Auch wenn das Festlegen des regenerateExpiredSessionId-Attributs auf true das Risiko eines unerwünschten gemeinsamen Zugriffs auf Sitzungsdaten verringert, bietet dies keinen Schutz vor böswilligen Personen, die Zugriff auf die Sitzungen anderer Personen erlangen, indem sie sich den SessionID-Wert verschaffen und in Anforderungen an den Server verwenden. Wenn Sie im Sitzungszustand private oder vertrauliche Informationen speichern, ist es empfehlenswert, SSL zum Verschlüsseln von Kommunikation zwischen dem Browser und dem Server zu verwenden, die die SessionID enthält.

Beispiel

Im folgenden Codebeispiel wird das cookieless-Sitzungsattribut in der Datei Web.config auf true festgelegt.

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

Plattformen

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

HttpSessionState-Klasse
HttpSessionState-Member
System.Web.SessionState-Namespace

Weitere Ressourcen

Übersicht über den Sitzungszustand