mercoledì 14 dicembre 2011

Come scrivere e leggere cookies in Asp Net con C# Visual Studio 2010

In questo esempio vediamo come utilizzare la classe HttpCookie.

La classe HttpCookie va istanziata con l'operatore new:
 HttpCookie cookie = new HttpCookie(NameField.Text);

Nel costruttore viene passato il nome con cui si vuole creare un cookie.

Un cookie è un file di testo contenuto nel computer dell'utente che naviga nel sito.

Vediamo l'esempio completo la pagina
GestioneCookies.aspx.cs :


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class GestioneCookies : System.Web.UI.Page
{
    //Gestione dei cookies in lettura e scrittura

    protected void Page_Load(object sender, EventArgs e)
    {

        if (IsPostBack)
        {
            HyperLink1.Visible = true;
            HyperLink1.NavigateUrl = "LeggiCookie.aspx?cookie=" +  NameField.Text.ToString();
       
        }

    }
    protected void click_invia(object sender, EventArgs e)
    {
        //Ora
        HttpCookie cookie = new HttpCookie(NameField.Text);

        //Assegniamo il valore al cookie
        cookie.Value = ValoreField.Text;

        //il cookie deve sparire dopo 1 minuto
        DateTime dtNow = DateTime.Now;
        TimeSpan tsminute = new TimeSpan(0, 1, 0, 0);

        cookie.Expires = dtNow + tsminute;

        //Scriviamo il cookie, mandandolo al Browser
        Response.Cookies.Add(cookie);

        Response.Write("Cookie è stato aggiunto!");
    }
}

Ora il file GestioneCookie.aspx:


<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="GestioneCookies.aspx.cs" Inherits="GestioneCookies" %>

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
</asp:Content>


<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
<div>
Cookie  Nome
<asp:TextBox runat="server" ID="NameField"></asp:TextBox> <br />
Cookie Valore
<asp:TextBox runat="server" ID="ValoreField"></asp:TextBox> <br />

<asp:HyperLink runat="server" Text="Leggi Cookie" ID="HyperLink1" NavigateUrl="Read.aspx" Visible="false"></asp:HyperLink>

<asp:Button Text="Invia" runat="server" onclick="click_invia" />

</div>

</asp:Content>


Per leggere il cookie usiamo il file LeggiCookie.asp.cs:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class LeggiCookie : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        if (Request.QueryString["cookie"] != null)
            ReadCookies();



    }
    private void ReadCookies()
    {
        string CookieName = Request.QueryString["cookie"];

        HttpCookie cookie = Request.Cookies[CookieName];

        if (cookie == null)
        {
            Response.Write("Not Found!");
        }
        else
        {
            string valorecookie = cookie.Value;
            Response.Write( "Il cookie contiene :" +  valorecookie);
       
        }
   
    }


}

e LeggiCookie.aspx:


<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="LeggiCookie.aspx.cs" Inherits="LeggiCookie" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
</asp:Content>

In sostanza per leggere un cookie dobbiamo :
HttpCookie cookie = Request.Cookies[CookieName];

Utilizziamo l'insieme Cookies da Request, mettendo come indice il nome del Cookie di cui vogliamo ritrovare il valore associato.

Per il corso di C# online:
http://www.corsilezioni.com/corso_c_sharp.html





Nessun commento: