Heim  >  Artikel  >  Backend-Entwicklung  >  Ausführliche Erläuterung der Lesebeispiele für Cookies in C#

Ausführliche Erläuterung der Lesebeispiele für Cookies in C#

黄舟
黄舟Original
2017-09-07 15:06:452081Durchsuche

Cookies in C# lesen

Link:

1. Cookies schreiben

 1. Die Namens- und Wertattribute werden vom Programm festgelegt und die Standardwerte ​​sind beide leer.

2. Der Standardwert des Domänenattributs ist der Domänennamenteil der aktuellen URL, unabhängig davon, in welchem ​​Verzeichnis sich die Seite befindet, die dieses Cookie ausgibt.

Das Domänenattribut ist standardmäßig www.kent.com. Dieses Attribut kann vom Programm auf den erforderlichen Wert gesetzt werden.

 3. Der Standardwert des Path-Attributs ist das Stammverzeichnis, also „/“, unabhängig davon, in welchem ​​Verzeichnis sich die Seite befindet, die dieses Cookie sendet. Der Umfang dieses Cookies kann weiter eingeschränkt werden, indem es vom Programm auf einen bestimmten Pfad gesetzt wird.

 4. Expires-Attribut, dieses Attribut legt das Ablaufdatum und die Ablaufzeit dieses Cookies fest. Wenn die Gültigkeitsdauer des Cookies nicht festgelegt ist (Standardeinstellung), kann auch ein Cookie erstellt werden, dieses wird jedoch nicht auf der Festplatte des Benutzers gespeichert, sondern wird Teil der Sitzungsinformationen des Benutzers. Das Cookie verschwindet, wenn die Der Browser wird geschlossen oder die Sitzung läuft ab. Diese Art von Cookie wird als nicht permanentes Cookie bezeichnet. Das Cookie, das die SessionID speichert, ist ein solches Cookie. Es wird nicht auf der Festplatte gespeichert, sondern existiert nur im Speicher.

5. Hängen Sie das zu sendende Cookie an das Cookies-Attribut von Response an, um das Cookie an den Client zu senden: Response.Cookies.Add(Cookie)

6. Domain-Attribut + Path-Attribut sind Das Gleiche: Alle Cookies werden in einer Datei auf der Clientseite gespeichert und Cookies werden durch „*“ getrennt. Die erste Zeile jedes Cookies ist der Name des Cookies, die zweite Zeile ist der Wert, die dritte Zeile ist eine Zeichenfolge bestehend aus Domänenattribut + Pfadattribut, die den Umfang dieses Cookies angibt, und die restlichen Zeilen enthalten die täglichen Verarbeitungsinformationen des Cookies, wie z. B. Ablaufdatum und -zeit. Außerdem gibt es im Cookie eine einfache Prüfsumme. Wenn also der Cookie-Name oder die Länge des Werts geändert wird, erkennt der Browser die Änderung und löscht das Cookie.

2. Cookies lesen

1. Das Attribut „Request.Cookies“ enthält eine Sammlung aller vom Client an den Server gesendeten Cookies und liegt nur im Rahmen von die Anforderungs-URL. Das darin enthaltene Cookie wird vom Browser zusammen mit der HTTP-Anfrage an den Server gesendet.

 2. Die Namens- und Wertattribute sowie die Unterschlüsselwerte sind leicht zu lesen.

 3. Die Domänen- und Pfadattribute können nicht gelesen werden. Das Domänenattribut ist immer „“ und das Pfadattribut ist immer „/“. Ursprünglich waren diese Eigenschaften von begrenztem Nutzen. Wenn sich Ihre Seite nicht auf derselben Domain wie das Cookie befindet, erhalten Sie das Cookie überhaupt nicht am Speicherort der Seite.

 4. Das Ablaufdatum und die Ablaufzeit des Cookies können nicht gelesen werden. Wenn der Browser Cookie-Informationen an den Server sendet, enthält der Browser tatsächlich keine Ablaufinformationen. Sie können die Expires-Eigenschaft lesen, sie gibt jedoch immer einen Datums-/Uhrzeitwert von Null zurück. Die Hauptaufgabe des Expires-Attributs besteht darin, den Browser bei der täglichen Verwaltung der Cookie-Speicherung zu unterstützen. Aus Sicht des Servers ist das Cookie entweder vorhanden oder nicht vorhanden, sodass das Ablaufdatum keine nützliche Information für den Server darstellt. Daher stellt der Browser diese Informationen beim Senden des Cookies nicht bereit. Wenn Sie das Ablaufdatum eines Cookies benötigen, müssen Sie es erneut festlegen.

3. Cookies ändern und löschen

1. Tatsächlich können Sie ein Cookie nicht direkt ändern. Sie müssen ein Cookie mit demselben Namen erstellen und das Cookie senden zum Browser. Alte Cookies auf dem Client-Rechner überschreiben.

2. Ebenso können Sie ein Cookie nicht direkt löschen, damit der Browser das Cookie für Sie löscht prüft das Cookie. Nach Ablauf der Gültigkeitsdauer wird das abgelaufene Cookie gelöscht. Ändern Sie die Gültigkeitsdauer und löschen Sie Cookies

4. Die Beziehung zwischen Cookie und Sitzung

1. Die Sitzung in asp.net kann Cookies und Cookie-lose Methoden verwenden besteht darin, die SessionID zu ändern, sie in die URL einzufügen und sie ohne Verwendung von Cookies zwischen dem Client und dem Server weiterzuleiten. Diese Methode wird hier nicht besprochen.

2. Wenn ein Client in asp.net zum ersten Mal eine URL anfordert, generiert der Server eine SessionID für den Client und sendet sie als nicht permanentes Cookie an den Client.

 3. Nicht permanente Cookies verschwinden erst, nachdem der Browser geschlossen wurde. Die Beurteilung des Sitzungszeitlimits erfolgt wie folgt:

 3.1 Beim ersten Zugriff des Clients auf den Server wird eine Sitzungs-ID angezeigt abgerufen und als nicht permanentes Cookie an den Client gesendet.

3.2 Beim Zugriff auf diese URL vor dem Schließen des Browsers sendet der Browser die SessionID an den Server. Der Server verwaltet verschiedene Status des Servers, die dem Client entsprechen, basierend auf der SessionID (d. h. den verschiedenen). (In der Sitzung gespeicherte Status). Diese Sitzungen können in Webanwendungen betrieben werden.

 3.3 Der Server behält die Ablaufzeit dieser Sitzungs-ID bei. Das Sitzungszeitlimit kann in IIS festgelegt werden. Jede Anfrage führt dazu, dass der Server die Ablaufzeit dieser SessioID um einen festgelegten Timeout-Zeitraum verlängert.

 3.4 Wenn der Server feststellt, dass eine SessionID abgelaufen ist, d. h. ein Kunde die Website nicht innerhalb des festgelegten Timeout-Zeitraums erneut besucht hat, werden die SessionID und alle mit dieser SessionID verbundenen Sitzungsvariablen gelöscht.

 3.5 Bevor der Browser des Clients geschlossen wird, weiß er nicht, dass der Server die SessionID gelöscht hat. Der Client sendet weiterhin das Cookie dieser SessionID an den Server, aber zu diesem Zeitpunkt erkennt der Server die SessionID nicht mehr und wird dies tun Der Benutzer wird als neuer Benutzer behandelt und ihm wird erneut eine neue SessionID zugewiesen.

Erstellung von Cookies:

Erstellen Sie auf dem Client ein Benutzernamen-Cookie mit einem Wert von gjy und einer Gültigkeitsdauer von 1 Tag.

Methode 1 :

Response.Cookies["username"].Value="zxf";
Response.Cookies["username"].Expires=DateTime.Now.AddDays(1);

Methode 2:

System.Web.HttpCookie newcookie=new HttpCookie("username");
newcookie.Value="gjy";
newcookie.Expires=DateTime.Now.AddDays(1);
Response.AppendCookie(newcookie);

Cookies mit Unterschlüsseln erstellen:

System.Web.HttpCookie newcookie=new HttpCookie("user");
newcookie.Values["username"]="zxf";
newcookie.Values["password"]="111";
newcookie.Expires=DateTime.Now.AddDays(1);
Response.AppendCookie(newcookie);

oder:

System.Web.HttpContext.Current.Response.Cookies.Add(Cookie);

Cookies lesen:

Ohne Unterschlüssel lesen:

if(Request.Cookies["username"]!=null)
{
Response.Write(Server.UrlDecode(Request.Cookies["username"]));

oder:

HttpContext.Current.Request.Cookies[strCookieName]
}

Mit Unterschlüssel lesen:

if(Request.Cookies["user"]!=null)
{
Response.Write(Server.UrlDecode(Request.Cookies["user"]["username"].Value));
Response.Write(Server.UrlDecode(Request.Cookies["user"]["password"].Value));

Zwei Möglichkeiten zum Hinzufügen und Lesen:

Hinzufügen:

Response.AppendCookie(newcookie);
System.Web.HttpContext.Current.Response.Cookies.Add(Cookie);

Lesen:

Request.Cookies["username"]
HttpContext.Current.Request.Cookies["username"]

Solange Sie keine Ablaufzeit festlegen Für das Cookie läuft das Cookie automatisch ab, wenn der Browser geschlossen wird

Löschen Sie die Cookie-Änderungszeit: Cookie.Expires = DateTime.Now.AddDays(-1);

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

 
public class Cookie
{
    /// <summary>
    /// Cookies赋值
    /// </summary>
    /// <param name="strName">主键</param>
    /// <param name="strValue">键值</param>
    /// <param name="strDay">有效天数</param>
    /// <returns></returns>
    public bool setCookie(string strName, string strValue, int strDay)
    {
        try
        {
            HttpCookie Cookie = new HttpCookie(strName);
            //Cookie.Domain = ".xxx.com";//当要跨域名访问的时候,给cookie指定域名即可,格式为.xxx.com
            Cookie.Expires = DateTime.Now.AddDays(strDay);
            Cookie.Value = strValue;
            System.Web.HttpContext.Current.Response.Cookies.Add(Cookie);
            return true;
        }
        catch
        {
            return false;
        }
    }

    /// <summary>
    /// 读取Cookies
    /// </summary>
    /// <param name="strName">主键</param>
    /// <returns></returns>
 
    public string getCookie(string strName)
    {
        HttpCookie Cookie = System.Web.HttpContext.Current.Request.Cookies[strName];
        if (Cookie != null)
        {
            return Cookie.Value.ToString();
        }
        else
        {
            return null;
        }
    }

    /// <summary>
    /// 删除Cookies
    /// </summary>
    /// <param name="strName">主键</param>
    /// <returns></returns>
    public bool delCookie(string strName)
    {
        try
        {
            HttpCookie Cookie = new HttpCookie(strName);
            //Cookie.Domain = ".xxx.com";//当要跨域名访问的时候,给cookie指定域名即可,格式为.xxx.com
            Cookie.Expires = DateTime.Now.AddDays(-1);
            System.Web.HttpContext.Current.Response.Cookies.Add(Cookie);
            return true;
        }
        catch
        {
            return false;
        }
    }
}


Beispiel:

Cookie Cookie = new Cookie();
Cookie.setCookie("name", "aaa",1);//赋值
Cookie.getCookie("name");//取值
Cookie.delCookie("name");//删除
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
 
public class Cookie
{
    /// <summary>
    /// Cookies赋值
    /// </summary>
    /// <param name="strName">主键</param>
    /// <param name="strValue">键值</param>
    /// <param name="strDay">有效天数</param>
    /// <returns></returns>
    public bool setCookie(string strName, string strValue, int strDay)
    {
        try
        {
            HttpCookie Cookie = new HttpCookie(strName);
            //Cookie.Domain = ".xxx.com";//当要跨域名访问的时候,给cookie指定域名即可,格式为.xxx.com
            Cookie.Expires = DateTime.Now.AddDays(strDay);
            Cookie.Value = strValue;
            System.Web.HttpContext.Current.Response.Cookies.Add(Cookie);
            return true;
        }
        catch
        {
            return false;
        }
    }
    /// <summary>
    /// 读取Cookies
    /// </summary>
    /// <param name="strName">主键</param>
    /// <returns></returns>
 
    public string getCookie(string strName)
    {
        HttpCookie Cookie = System.Web.HttpContext.Current.Request.Cookies[strName];
        if (Cookie != null)
        {
            return Cookie.Value.ToString();
        }
        else
        {
            return null;
        }
    }
    /// <summary>
    /// 删除Cookies
    /// </summary>
    /// <param name="strName">主键</param>
    /// <returns></returns>
    public bool delCookie(string strName)
    {
        try
        {
            HttpCookie Cookie = new HttpCookie(strName);
            //Cookie.Domain = ".xxx.com";//当要跨域名访问的时候,给cookie指定域名即可,格式为.xxx.com
            Cookie.Expires = DateTime.Now.AddDays(-1);
            System.Web.HttpContext.Current.Response.Cookies.Add(Cookie);
            return true;
        }
        catch
        {
            return false;
        }
    }
}

Beispiel:

Cookie Cookie = new Cookie();
Cookie.setCookie("name", "aaa",1);//赋值
Cookie.getCookie("name");//取值
Cookie.delCookie("name");//删除

Hinweis: Erscheint, wenn das Cookie auf Chinesisch gespeichert wird Der Code ist verstümmelt und wird beim Speichern auf Chinesisch codiert, z. B. Cookie.setCookie("name", Server.UrlEncode("aaa"), 1), lesen Sie „Dekodieren Sie es einfach, wenn Sie es abrufen“

Außerdem: Solange Sie keine Ablaufzeit für das Cookie festlegen, läuft das Cookie automatisch ab, wenn der Browser geschlossen wird

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Lesebeispiele für Cookies in C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn