Share via


HttpSessionState.IsCookieless Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob die Sitzungs-ID in der 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

Boolean

true, wenn die Sitzung in der URL eingebettet ist, andernfalls false.

Beispiele

Im folgenden Codebeispiel wird das cookieless Sitzungsattribute 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 Sitzungscooky im Browser gespeichert. Sie können angeben, dass Sitzungsbezeichner nicht in einem Cookie gespeichert werden, indem Sie das cookieless Attribut true im SessionState-Konfigurationselement festlegen.

Hinweis

Um die Abandon Sicherheit Ihrer Anwendung zu verbessern, sollte Ihre Anwendung Benutzern erlauben, sich abmelden zu lassen, an welchem Punkt die Methode aufgerufen werden soll. Dadurch wird das Potenzial für eine unerwünschte Quelle reduziert, indem der eindeutige Bezeichner in der URL verwendet wird, um private Daten abzurufen, die in der Sitzung für einen Benutzer gespeichert sind.

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

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

ASP.NET ändert die links, die in allen angeforderten Seiten enthalten sind, indem sie einen Sitzungs-ID-Wert in die Links einbetten, bevor jede Seite an den Browser gesendet wird. Der Sitzungszustand wird beibehalten, solange der Benutzer dem Pfad von Links folgt, die die Website bereitstellt. Wenn der Benutzer-Agent jedoch eine URL neu schreibt, geht die Sitzungszustandsinstanz verloren.

Die Sitzungs-ID wird nach dem Schrägstrich in die URL eingebettet, die dem Anwendungsnamen folgt, und vor einer verbleibenden Datei oder einem virtuellen Verzeichnisbezeichner. Dadurch kann ASP.NET den Anwendungsnamen auflösen, bevor die SessionStateModule 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 angegeben 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, vielleicht ü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 Sitzungsbezeichnern 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 erstellt wird. Beachten Sie, dass, wenn die Anforderung mit der abgelaufenen Sitzungs-ID die HTTP-Methode POST verwendet, alle geposteten Daten verloren gehen, wenn regenerateExpiredSessionId trueASP.NET eine Umleitung ausführt, um sicherzustellen, dass der Browser über den neuen Sitzungsbezeichner in der URL verfügt.

Hinweis

Beim Festlegen des regenerateExpiredSessionId Attributs, um die Möglichkeit der 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 er den SessionID Wert erhält und es in Anforderungen an den Server einbezieht. Wenn Sie private oder vertrauliche Informationen im Sitzungszustand speichern, empfiehlt es sich, SSL zu verwenden, um jede Kommunikation zwischen dem Browser und dem Server zu verschlüsseln, der dies SessionIDenthält.

Gilt für

Siehe auch