HttpSessionState.IsCookieless Eigenschaft

Definition

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

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

Eigenschaftswert

truewenn die Sitzung in die URL eingebettet ist; andernfalls . false

Beispiele

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>

Hinweise

ASP.NET identifiziert Sitzungen eindeutig mit jedem Browser. Standardmäßig wird der eindeutige Bezeichner für eine Sitzung in einem nicht ablaufenden Sitzungscookies im Browser gespeichert. Sie können angeben, dass Sitzungs-IDs nicht in einem Cookie gespeichert werden, indem Sie das cookieless Attribut true im sessionState-Konfigurationselement festlegen.

Note

Um die Sicherheit Ihrer Anwendung zu verbessern, sollte Ihre Anwendung es Benutzern ermöglichen, sich abzumelden, an welcher Stelle die Abandon Methode aufgerufen werden soll. Dadurch wird das Potenzial für eine unerwünschte Quelle mithilfe des eindeutigen Bezeichners in der URL reduziert, um private Daten abzurufen, die in der Sitzung für einen Benutzer gespeichert sind.

ASP.NET verwaltet den sitzungslosen Sitzungszustand, indem automatisch eine eindeutige Sitzungs-ID in die URL der Seite eingefügt wird. Die folgende URL wurde beispielsweise von ASP.NET geändert, um die eindeutige Sitzungs-ID lit3py55t21z5v55vlm25s55 einzuschließen:

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

ASP.NET ändert die Links, die auf allen angeforderten Seiten enthalten sind, indem ein Sitzungs-ID-Wert in die Links eingebettet wird, bevor jede Seite an den Browser gesendet wird. Der Sitzungszustand wird beibehalten, solange der Benutzer dem Pfad der von der Website bereitgestellten Links folgt. Wenn der Benutzer-Agent jedoch eine URL umschreibt, geht die Instanz des Sitzungszustands verloren.

Die Sitzungs-ID wird in die URL nach dem Schrägstrich eingebettet, der auf den Anwendungsnamen folgt, und vor der verbleibenden Datei- oder virtual-directory-ID. Auf diese Weise kann ASP.NET den Anwendungsnamen auflösen, bevor die SessionStateModule in die Anforderung einbezogen wird.

Standardmäßig werden Sitzungsbezeichner, die in cookielosen Sitzungen verwendet werden, wiederverwendet. Das heißt, wenn eine Anforderung mit einer Sitzungs-ID erfolgt, die abgelaufen ist, wird eine neue Sitzung mit der sitzungs-ID gestartet, die mit der Anforderung bereitgestellt wird. Dieses Verhalten kann zur unerwünschten Freigabe von Sitzungsdaten führen, wenn ein Link, der eine cookielose Sitzungs-ID enthält, mit mehreren Browsern geteilt wird, z. B. über eine Suchmaschine oder ein anderes Programm. Sie können die Möglichkeit reduzieren, dass Sitzungsdaten von mehreren Clients freigegeben werden, indem Sie das Recycling von Sitzungs-IDs deaktivieren. Legen Sie dazu das regenerateExpiredSessionId Attribut des sessionState-Konfigurationselements auf true. Dies führt dazu, dass eine neue Sitzungs-ID generiert wird, wenn eine cookielose Sitzungsanforderung mit einer abgelaufenen Sitzungs-ID erfolgt. Beachten Sie, dass, wenn die Anforderung mit der abgelaufenen Sitzungs-ID die HTTP-POST-Methode verwendet, alle geposteten Daten verloren gehen, wenn regenerateExpiredSessionIdtrue ist, da ASP.NET eine Umleitung durchführt, um sicherzustellen, dass der Browser über den neuen Sitzungsbezeichner in der URL verfügt.

Note

Beim Festlegen des regenerateExpiredSessionId Attributs, um die Möglichkeit einer unerwünschten Freigabe von Sitzungsdaten zu true verringern, schützt es nicht vor einer unerwünschten Quelle, die Zugriff auf die Sitzung eines anderen Benutzers erhält, indem der SessionID Wert abgerufen und in Anforderungen an den Server eingeschlossen wird. Wenn Sie private oder vertrauliche Informationen im Sitzungszustand speichern, wird empfohlen, dass Sie SSL verwenden, um jede Kommunikation zwischen dem Browser und dem Server zu verschlüsseln, der dies SessionIDenthält.

Gilt für:

Weitere Informationen