クッキーをローカルディスクに保存する
次にクッキーをクライアントのローカルディスクに保存をする方法を見てみましょう。この方法は、ブラウザを閉じても、クライアントの電源を落としても情報は保持されます。ただし、有効期限を設定する必要があります。
○ プロジェクト
プロジェクトを作成して確認してみましょう。
プロジェクトの種類 |
ASP.NET Webアプリケーション |
プロジェクト名 |
CookieTest2 |
サンプルダウンロード
○ デザイン
Webフォームを追加して、次のようにコントロールを配置してください。
コントロールの配置例
○ プログラム
次のようにプログラムを記述してください。
Default.aspx.vb
- Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
- If Not Me.IsPostBack Then
- 'クッキーが存在するかどうか
- If Not Me.Request.Cookies("UserInfo") Is Nothing Then '存在する場合
- 'クッキーからデータを取り出して表示
- Dim userinfo As System.Collections.Specialized.NameValueCollection
- userinfo = Me.Request.Cookies("Userinfo").Values
- Me.TextBox1.Text = Me.Server.HtmlEncode(userinfo("UserID"))
- Me.TextBox2.Text = Me.Server.HtmlEncode(userinfo("Name"))
- Me.TextBox3.Text = Me.Server.HtmlEncode(userinfo("Email"))
- Else
- 'テキストボックスをクリア
- Me.TextBox1.Text = ""
- Me.TextBox2.Text = ""
- Me.TextBox3.Text = ""
- End If
- End If
- End Sub
- Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim cook As New HttpCookie("UserInfo")
- 'チェックがされているかどうか
- If Me.CheckBox1.Checked Then 'されていない場合
- 'クッキーにデータを保存
- cook.Values("UserID") = Me.TextBox1.Text
- cook.Values("Name") = Me.TextBox2.Text
- cook.Values("Email") = Me.TextBox3.Text
- cook.Expires = DateTime.Now.AddDays(1)
- Me.Response.Cookies.Add(cook)
- Else
- 'クッキーを削除
- cook.Expires = DateTime.Now.AddDays(-1)
- Me.Response.Cookies.Add(cook)
- End If
- Me.TextBox1.Text = ""
- Me.TextBox2.Text = ""
- Me.TextBox3.Text = ""
- End Sub
クッキーの保存の仕方や取得の仕方は前回と基本的には同じです。今回は、ローカルディスクに保存する記述をしています。Expiresプロパティに有効期限を設定することにより保存をしています。削除するには前の日付時刻に設定をすることによって可能です。
○ 実行結果
実行結果
実行後に、一度ブラウザを閉じ、再び実行すると、前回の入力情報が表示されます。また、「情報を保存する」にチェックをはずした状態にすると、前回の入力情報が削除されます。
前へ