Hinweis: Der folgende Artikel hilft Ihnen dabei: Statusverwaltung in asp.net, erster Teil: Cookies
Manchmal ist es notwendig, nützliche Informationen zu erhalten und diese auf anderen Seiten zu nutzen. Es gibt mehrere Möglichkeiten, dies zu tun; Eine dieser Methoden ist die Verwendung von Cookies. In diesem Artikel besprechen wir nun, wie Variablen und Daten in zwei Schritten übertragen werden: 1 – Erstellen eines Cookies und Platzieren von Variablen und Daten in asp.net und 2 – Abrufen von Variablen und Daten aus Cookies.
Unter State Management versteht man eine Reihe von Lösungen zur Aufrechterhaltung des Status/Modus von Variablen und Programmdaten bei der Übertragung von einer Seite auf eine andere.
Im ersten Teil stellen wir die Möglichkeiten zum Speichern von Informationen auf der Seite oder dem Computer des Benutzers (Client) vor. Bei den Optionen dieses Abschnitts werden keine Informationen auf dem Server gespeichert.
1) Status anzeigen: Diese Eigenschaft stellt ein listenartiges Objekt zum Speichern von Informationen zwischen mehreren Anforderungen zum Senden und Empfangen der Seite an den Server für diese Seite bereit. Dieses Objekt ist die Standardmethode zum Speichern von Seiteninformationen und den darin enthaltenen Steuerelementen zwischen Roundtrips zum Server. Wenn die Seite an den Server gesendet wird, werden der aktuelle Status der Seite und die Informationen in ihren Steuerelementen in Form eines verschlüsselten Textes und in einem oder mehreren Hidden Field-Steuerelementen gespeichert. Wenn die Menge der gespeicherten Informationen den in der Eigenschaft „MaxStateFieldLength“ festgelegten Wert überschreitet, verwendet die Seite mehrere Steuerelemente für ausgeblendete Felder. Wenn die Seite vom Server zurückkehrt (Postback), liest sie die Informationen im View State-Textobjekt und gibt sie an die zugehörigen Steuerelemente zurück.
2) Kontrollzustand: Manchmal müssen Sie die Statusinformationen eines bestimmten Steuerelements an einem bestimmten Punkt speichern, damit es ordnungsgemäß funktioniert. Angenommen, Sie haben ein benutzerdefiniertes Steuerelement entworfen, das über verschiedene Registerkarten verfügt, auf denen unterschiedliche Informationen gespeichert werden. Wenn Sie beispielsweise für dieses bestimmte Steuerelement zwischen der Seite und dem Server hin und her wechseln, müssen Sie wissen, welche Kante das Informationssteuerelement anzeigt, bevor Sie die Seite an den Server senden. Sie können die Funktion „Status anzeigen“ verwenden, um den Status dieses Steuerelements beizubehalten. Diese Funktion kann jedoch auf der Seite deaktiviert werden und möglicherweise versehentlich oder absichtlich deaktiviert werden, was dazu führen kann, dass die Funktionalität des oben genannten Steuerelements fehlschlägt. Um dieses Problem zu lösen, hat Asp.Net die Verwendung der Control State-Funktion bereitgestellt. Mit dem Control State-Objekt können Sie den aktuellen Status eines Steuerelements auf der Seite speichern, bevor Sie es an den Server senden, ohne die Möglichkeit, es zu deaktivieren.
3) Versteckte Felder: Mit der Sprache Asp.Net können Sie Ihre Informationen in ausgeblendeten Feldern oder HiddenField-Steuerelementen speichern. Diese Steuerelemente werden als versteckte Feldeingabe-Tags auf HTML-Seiten gerendert. Das Hidden Fields-Steuerelement hat keine sichtbare Ausgabe auf dem Bildschirm, aber wie andere Asp.Net-Steuerelemente können Sie die gewünschten Eigenschaften dafür festlegen. Wenn die Seite an den Server gesendet wird, wird der Wert eines Hidden Fields-Steuerelements zusammen mit den Werten anderer Seitensteuerelemente über ein HTTP-Formularprotokoll gesendet. Das Hidden Fields-Steuerelement speichert Informationen in seiner Value-Eigenschaft und kann direkt ermittelt werden.
Anmerkung 1: Wenn Sie möchten, dass ein Steuerelement für ausgeblendete Felder ordnungsgemäß funktioniert und seine Informationen während des Seiten-Postbacks zugänglich sind, müssen Sie die Seite mithilfe einer HTTP-Post-Methode an den Server senden. Wenn Sie die Seite durch Klicken auf einen Link oder über die HTTP-GET-Methode an den Server senden, funktioniert diese Steuerung nicht.
Anmerkung 2: Obwohl die Steuerinformationen für ausgeblendete Felder auf der Seite nicht sichtbar sind, können sie von anderen Benutzern durch Anzeigen des Seitencodes (Quellcode) gesehen werden. Daher sollten in dieser Kontrolle keine besonderen Informationen enthalten sein.
4) Cookies: Ein Cookie ist eine kleine Information, die in einer Textdatei oder im Speicher des Browsers gespeichert wird. Cookies können ein Ablaufdatum oder eine unbegrenzte Zeit haben. Sie können Cookies verwenden, um Benutzerinformationen oder Software usw. zu speichern. Cookies werden auf dem Computer des Benutzers gespeichert und wenn der Browser eine Seite anfordert, sendet er zusammen mit seiner Anfrage das Cookie dieser Seite an den Server. Der Server kann Cookies lesen und verwenden.
In einem Artikel mit dem Titel „Was sind Cookies und wie verwendet man Cookies in PHP“ haben wir ausführlich darüber gesprochen.
5) Abfragezeichenfolge: Das nächste im Speicher gespeicherte Objekt sind Abfragezeichenfolgen. Abfragezeichenfolgen sind Informationen, die an die Fortsetzung der Seitenadresse angehängt werden.
Die obige URL enthält zwei Abfragezeichenfolgen mit den Namen „Kategorie“ und „Preis“, deren Werte durch das Vorzeichen bestimmt werden. Sie werden am Ende der Seitenadresse hinzugefügt. Normalerweise wird eine Abfragezeichenfolge zum Übertragen von Informationen zwischen Seiten verwendet und hat ein begrenztes Volumen zum Senden von Informationen. Außerdem sind diese Informationen für den Benutzer sichtbar und weisen eine sehr geringe Sicherheit auf. Um Informationen über die Abfragezeichenfolge zu senden, müssen Sie die Seite mit der HTTP-GET-Methode senden. Wenn Sie also die HTTP-POST-Methode verwenden, funktionieren diese Objekte nicht.
Optionen zur serverseitigen Statusverwaltung:
Asp.Net hat dem Designer verschiedene Optionen zur Verfügung gestellt, um Informationen und Seitenstatus auf dem Server zu speichern, anstatt sie auf dem Computer des Benutzers zu speichern. Durch die Nutzung der Informationsspeichereinrichtungen auf dem Server können Sie die Menge der von den Status- und Seitendaten an den Server gesendeten Informationen reduzieren, nutzen aber andererseits mehr Hardwareressourcen.
1) Antragsstatus: Mit der Asp.Net-Sprache können Sie Werte für jede aktive Webanwendung über die Application State-Funktion verwalten, die eine Version der HTTP Application State-Klasse ist. Der Anwendungsstatus ist ein globaler Speicher, auf den über alle Seiten der Webanwendung zugegriffen werden kann. Daher eignet sich der Speicher zum Speichern allgemeiner Informationen und Informationen, die jedes Mal verwendet werden müssen, wenn Seiten an den Server gesendet werden. Der Anwendungsstatus wird in Name/Wert-Paaren für jede Anfrage an eine bestimmte URL erstellt.
2) Sitzungsstatus: Die Asp.Net-Sprache bietet uns eine weitere Option zum Speichern von Informationen im Speicher namens Session State, eine Version der HTTP-Session-State-Klasse. Der Sitzungsstatus ist dem Anwendungsstatus sehr ähnlich, außer dass er sich auf den Status des aktuellen Browsers konzentriert. Wenn mehrere Benutzer Ihre Webanwendung gleichzeitig verwenden, verfügt jeder Benutzer über seine eigene Version von Session. Auch wenn der Benutzer die Nutzung der Webanwendung abbricht und nach einer Weile wieder zurückkehrt, unterscheidet sich die erste Sitzung von der zweiten Sitzung. Der Sitzungsstatus wird auch als Name/Wert-Paar verwendet, um Informationen zu speichern, die jedes Mal benötigt werden, wenn die Seite an den Server gesendet wird. Im Allgemeinen kann diese Funktion für Folgendes verwendet werden:
- Identifizieren des Browsers oder Client-Computers, der die Anfrage an den Server gesendet hat, und Senden der Anfrage an die relevanten Informationen im Speicher des Servers.
- Speichern der gewünschten Informationen auf dem Server zur Verwendung in mehreren Browsern oder Clients in einer einzigen Sitzung.
- Aktivieren Sie Ereignisse für die Sitzungsverwaltung.
3) Profileigenschaften: Mit Profileigenschaften kann Asp.Net benutzerspezifische Informationen speichern. Diese Funktion ist dem Sitzungsstatus sehr ähnlich, außer dass die Profileigenschafteninformationen nicht verloren gehen, wenn die Sitzung verloren geht. Die Möglichkeit der Profileigenschaften nutzt ein Asp.Net-Profil mit einem vorgegebenen Format, das für jeden Benutzer unterschiedlich ist. Die Asp.Net-Profiloption bietet Ihnen diese Funktion, sodass Sie Benutzerinformationen speichern können, ohne eine Datenbank von Grund auf entwerfen zu müssen. Um die Möglichkeit der Profileigenschaften in Ihrer Anwendung nutzen zu können, müssen Sie einen Profilanbieter in Ihrer Anwendung aktivieren. Asp.Net verfügt über eine SQL Profile Provider-Klasse, die Sie zum Speichern von Daten in einem verwenden können SQL Datenbank oder erstellen Sie eine Datenquelle mit dem gewünschten Format und der gewünschten Struktur, z. B. einer SQL-Datenbank oder einer XML-Datei.
Möglichkeiten zum Übertragen von Variablen und Daten von einer Seite auf eine andere mithilfe von Cookies
Erster Schritt: Erstellen eines Cookies und Einfügen von Variablen und Daten darin
Zu diesem Zweck müssen Sie zunächst die verwenden Antwort. Cookies-Befehl zum Erstellen eines Cookies. Beachten Sie, dass dieser Befehl vor dem -Tag verwendet werden muss. Mit dem folgenden Befehl erstellen wir beispielsweise zwei Cookies, von denen jedes eine Variable namens „Alter“ mit dem Wert 27 und eine Variable namens „Vorname“ mit dem Wert „sajad“ hat.
<%
Response.Cookies(“firstname”)=“sajad“
Response.Cookies(“age”)=“27″
%>
Da Cookies auf dem lokalen Computer des Besuchers gespeichert werden, können Sie einige Einstellungen für Cookies vornehmen. Sie können beispielsweise angeben, wie lange ein Cookie auf dem lokalen Computer des Besuchers verbleibt. Im folgenden Code wird dieses Datum beispielsweise als 10. Mai 2012 angegeben.
<%
Response.Cookies(“firstname”)=“sajad“
Response.Cookies(“Vorname”).Expires=#May 10,2015#
Response.Cookies(“age”)=“۲۷″
Response.Cookies(“age“).Expires=#May 10,2012#
%>
Zweiter Schritt: Abrufen von Variablen und Daten aus Cookies
Über den Request können Variablen und Daten aus Cookies abgerufen werden. Cookies-Befehl. Mit den folgenden Befehlen können Sie beispielsweise die oben erstellten Variablen „Vorname“ und „Alter“ sowie den angegebenen Wert wiederherstellen.
<%
fname=Request.Cookies(“Vorname”)
Response.write(„Ihr Vorname ist=“ & fname)
age=Request.Cookies(“Alter”)
Response.write(“Ihr Alter ist = ” & Alter)
%>
In ASP.Net gibt es zwei Möglichkeiten, ein Cookie auf den Computer des Benutzers zu schreiben:
Bestimmen der Cookie-Eigenschaften in der Cookie-Sammlung
Erstellen einer Instanz des HttpCookie-Objekts und Senden an die Cookie-Sammlung
Wichtiger Hinweis: Cookies müssen definiert und gesetzt werden, bevor die Ausgabe der ASP.Net-Seite erstellt oder gerendert wird. Sie müssen beispielsweise im Page_Load-Ereignis der Seite definiert werden und nicht in einer Funktion wie Page_Unload.