クッキーをローカルディスクに保存する

 次にクッキーをクライアントのローカルディスクに保存をする方法を見てみましょう。この方法は、ブラウザを閉じても、クライアントの電源を落としても情報は保持されます。ただし、有効期限を設定する必要があります。

○ プロジェクト

 プロジェクトを作成して確認してみましょう。

プロジェクトの種類 ASP.NET Webアプリケーション
プロジェクト名 CookieTest2

サンプルダウンロード

○ デザイン

 Webフォームを追加して、次のようにコントロールを配置してください。

コントロールの配置例
コントロールの配置例

○ プログラム

 次のようにプログラムを記述してください。

Default.aspx.vb

  1. Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  2.  If Not Me.IsPostBack Then
  3.   'クッキーが存在するかどうか
  4.   If Not Me.Request.Cookies("UserInfo") Is Nothing Then '存在する場合
  5.    'クッキーからデータを取り出して表示
  6.    Dim userinfo As System.Collections.Specialized.NameValueCollection
  7.    userinfo = Me.Request.Cookies("Userinfo").Values
  8.    Me.TextBox1.Text = Me.Server.HtmlEncode(userinfo("UserID"))
  9.    Me.TextBox2.Text = Me.Server.HtmlEncode(userinfo("Name"))
  10.    Me.TextBox3.Text = Me.Server.HtmlEncode(userinfo("Email"))
  11.   Else
  12.    'テキストボックスをクリア
  13.    Me.TextBox1.Text = ""
  14.    Me.TextBox2.Text = ""
  15.    Me.TextBox3.Text = ""
  16.   End If
  17.  End If
  18. End Sub
  19. Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
  20.  Dim cook As New HttpCookie("UserInfo")
  21.  'チェックがされているかどうか
  22.  If Me.CheckBox1.Checked Then 'されていない場合
  23.  'クッキーにデータを保存
  24.   cook.Values("UserID") = Me.TextBox1.Text
  25.   cook.Values("Name") = Me.TextBox2.Text
  26.   cook.Values("Email") = Me.TextBox3.Text
  27.   cook.Expires = DateTime.Now.AddDays(1)
  28.   Me.Response.Cookies.Add(cook)
  29.  Else
  30.   'クッキーを削除
  31.   cook.Expires = DateTime.Now.AddDays(-1)
  32.   Me.Response.Cookies.Add(cook)
  33.  End If
  34.  Me.TextBox1.Text = ""
  35.  Me.TextBox2.Text = ""
  36.  Me.TextBox3.Text = ""
  37. End Sub

 クッキーの保存の仕方や取得の仕方は前回と基本的には同じです。今回は、ローカルディスクに保存する記述をしています。Expiresプロパティに有効期限を設定することにより保存をしています。削除するには前の日付時刻に設定をすることによって可能です。

○ 実行結果

実行結果
実行結果

 実行後に、一度ブラウザを閉じ、再び実行すると、前回の入力情報が表示されます。また、「情報を保存する」にチェックをはずした状態にすると、前回の入力情報が削除されます。

前へ