方法 : Cookie を記述する
更新 : 2007 年 11 月
Cookie によって、Web アプリケーションは履歴やユーザー設定などのユーザー固有の情報を格納できます。Cookie は、要求および応答と共に Web サーバーとクライアント間でやり取りされる少量のテキストです。Cookie には、ユーザーがサイトを訪問するたびに Web アプリケーションが読み出すことができる情報が格納されます。
ブラウザは、Cookie をクライアント コンピュータで管理します。Cookie は、Cookies というプロパティを公開する HttpResponse オブジェクトを使用してクライアントに送信されます。Web アプリケーションからブラウザに送信するすべての Cookie は、このコレクションに追加する必要があります。新しい Cookie を記述するときは、Name と Value を指定する必要があります。ブラウザが後で要求と共に Cookie を送信する際に Web アプリケーションがそれを識別できるように、各 Cookie には一意の名前が必要です。
ユーザーのコンピュータに Cookie を記述するには、2 つの方法があります。Cookie のプロパティを直接 Cookies コレクションに設定するか、または HttpCookie オブジェクトのインスタンスを作成してから Cookies コレクションに追加します。Cookie は、ASP.NET ページをクライアントにレンダリングする前に作成する必要があります。たとえば、Cookie は Page_Unload イベント ハンドラではなく、Page_Load イベント ハンドラに記述します。ページの有効期間の詳細については、「ASP.NET ページのライフ サイクルの概要」を参照してください。
詳細については、「ASP.NET の Cookie の概要」を参照してください。
Cookies コレクションに Cookie プロパティを設定して Cookie を記述するには
Cookie を記述する ASP.NET ページで、Cookies コレクションの Cookie にプロパティを割り当てます。
Font サブキーと Color サブキーの値を設定した UserSettings という Cookie のコード例を次に示します。また、有効期限を翌日に設定します。
Response.Cookies("UserSettings")("Font") = "Arial" Response.Cookies("UserSettings")("Color") = "Blue" Response.Cookies("UserSettings").Expires = DateTime.Now.AddDays(1)
Response.Cookies["UserSettings"]["Font"] = "Arial"; Response.Cookies["UserSettings"]["Color"] = "Blue"; Response.Cookies["UserSettings"].Expires = DateTime.Now.AddDays(1d);
HttpCookie オブジェクトのインスタンスを作成して Cookie を記述するには
HttpCookie 型のオブジェクトを作成して名前を付けます。
Cookie のサブキーに値を割り当て、Cookie のプロパティを設定します。
Cookie を Cookies コレクションに追加します。
UserSettings という Cookie を表す myCookie という HttpCookie オブジェクトのインスタンスのコード例を次に示します。
Dim myCookie As HttpCookie = New HttpCookie("UserSettings") myCookie("Font") = "Arial" myCookie("Color") = "Blue" myCookie.Expires = Now.AddDays(1) Response.Cookies.Add(myCookie)
HttpCookie myCookie = new HttpCookie("UserSettings"); myCookie["Font"] = "Arial"; myCookie["Color"] = "Blue"; myCookie.Expires = DateTime.Now.AddDays(1d); Response.Cookies.Add(myCookie);
堅牢性の高いプログラム
既定では、Cookie は同じドメインのすべてのページで共有されますが、Path プロパティを設定して、Cookie の使用を Web サイトの特定のサブフォルダに制限することもできます。アプリケーションのすべてのフォルダのすべてのページが Cookie を取得できるようにするには、Path プロパティを設定せずに、アプリケーションのルート フォルダにあるページから設定します。
有効期限を指定しない Cookie は、クライアント コンピュータに永続的に保存されません。ユーザー セッションの期限が切れると Cookie の有効期限が切れます。
Cookie に格納できるのは、String 型の値のみです。文字列以外の値は、Cookie に値を格納する前に文字列に変換する必要があります。多くのデータ型では、この処理は ToString メソッドを呼び出すだけで十分です。詳細については、保存するデータ型の ToString メソッドを参照してください。
セキュリティ
Cookie にはユーザー名やパスワードなどの機密情報は格納しないでください。Cookie のセキュリティの詳細については、「ASP.NET の Cookie の概要」を参照してください。