Cookies no Delphi 2005/2006 (aplicações ASP.NET)

Veja como criar, apagar e limitar o tempo dos cookies no Delphi 2005/2006 (aplicações ASP.NET).

Nada melhor que um exemplo prático para aprendermos, por isso segue abaixo os fontes de como  criar, apagar e limitar o tempo dos cookies no Delphi 2005/2006.

unit WebForm1;

interface

uses
  System.Collections, System.ComponentModel,
  System.Data, System.Drawing, System.Web, System.Web.SessionState,
  System.Web.UI, System.Web.UI.WebControls, System.Web.UI.HtmlControls;

type
  TWebForm1 = class(System.Web.UI.Page)
  {$REGION 'Designer Managed Code'}
  strict private
    procedure InitializeComponent;
    procedure Button1_Click(sender: System.Object; e: System.EventArgs);
    procedure Button2_Click(sender: System.Object; e: System.EventArgs);
  {$ENDREGION}
  strict private
    procedure Page_Load(sender: System.Object; e: System.EventArgs);
  strict protected
    TextBox1: System.Web.UI.WebControls.TextBox;
    Button1: System.Web.UI.WebControls.Button;
    Label1: System.Web.UI.WebControls.Label;
    Button2: System.Web.UI.WebControls.Button;
    procedure OnInit(e: EventArgs); override;
  private
    { Private Declarations }
  public
    { Public Declarations }
  end;

implementation

{$REGION 'Designer Managed Code'}
///
/// Required method for Designer support -- do not modify
/// the contents of this method with the code editor.
///
procedure TWebForm1.InitializeComponent;
begin
  Include(Self.Button1.Click, Self.Button1_Click);
  Include(Self.Button2.Click, Self.Button2_Click);
  Include(Self.Load, Self.Page_Load);
end;
{$ENDREGION}

procedure TWebForm1.Page_Load(sender: System.Object; e: System.EventArgs);
begin
  if Request.Cookies['Usuario'] <> nil then
    Label1.Text := System.String.Format('Seja bem-vindo {0}',
      Request.Cookies['Usuario'].Value);
end;

procedure TWebForm1.OnInit(e: EventArgs);
begin
  //
  // Required for Designer support
  //
  InitializeComponent;
  inherited OnInit(e);
end;

procedure TWebForm1.Button2_Click(sender: System.Object; e: System.EventArgs);
begin
  // apaga o cookie. Literalmente  apaga o arquivo cookie
  Response.Cookies['Usuario'].Expires;
end;

procedure TWebForm1.Button1_Click(sender: System.Object; e: System.EventArgs);
var
  ck: System.Web.HttpCookie;
begin
  // Cria Cookie, expira em 3 dias
  ck := System.Web.HttpCookie.Create('Usuario',TextBox1.Text);
  ck.Expires := System.DateTime.Today.AddDays(3);
  Response.Cookies.Add(ck);
end;

end.