ASP.NET実践:Cookie書き込み
2531 ワード
Cookiesは、履歴やユーザの好みなどの特定のユーザ情報をWebアプリケーションに格納する方法を提供する.Cookieは,要求と応答とともにWebサーバとクライアント間で往復伝送される少量のテキストである.Webアプリケーションは,ユーザがウェブサイトにアクセスする際にCookieに含まれる情報を読み取ることができる.
ブラウザはクライアントコンピュータのCookiesを管理します.Cookiesは、
Cookieをユーザコンピュータに書き込むには2つの方法がある.
詳細については、[ASP.NET Cookiesの概要].
Cookieに書き込みたいASP.NETページでは、
は、 Cookieサブキーの値を指定し、Cookieのプロパティを設定します. このCookieを
デフォルトでは、Cookiesは同じドメインのすべてのページで共有されますが、
Cookieの有効期間を指定しないと、このCookieはクライアントコンピュータで継続的に保持できず、ユーザーのセッションステータスとともに失効します.
Cookiesは
Cookieにユーザー名やパスワードなどの機密情報を格納しないでください.Cookieセキュリティの詳細については、「ASP.NET Cookiesの概要].
ブラウザはクライアントコンピュータのCookiesを管理します.Cookiesは、
HttpResponse
という名前の属性のセットを露出したCookies
オブジェクトを使用してクライアントに送信される.Webアプリケーションでブラウザに送信するCookiesは、このセットに追加する必要があります.新しいCookieを書き込むときは、Name
とValue
のプロパティを指定する必要があります.各Cookieには、Webアプリケーションがブラウザの将来のリクエストで認識できるように、一意の名前が必要です.Cookieをユーザコンピュータに書き込むには2つの方法がある.
Cookies
のセットにCookieのプロパティを直接設定したり、HttpCookie
の新しいオブジェクトインスタンスを作成してCookies
のセットに追加したりすることができます.ASPにいなければなりませんNETページがクライアントに表示される前にCookiesを作成します.たとえば、Page_Load
イベントプロセッサにCookieを書き込むことができますが、Page_Unload
イベントプロセッサにCookieを書き込むことはできません.ページライフサイクルの詳細については、[ASP.NETページライフサイクルの概要].詳細については、[ASP.NET Cookiesの概要].
Cookiesコレクションに属性を設定してCookieに書き込む
Cookies
セットでCookieの属性を指定します.次のコード例では、UserSettingsというCookieを説明し、サブキーFontとColorに値を設定します.同時に失効時間を明日に設定した.
Response.Cookies["UserSettings"]["Font"] = "Arial";
Response.Cookies["UserSettings"]["Color"] = "Blue";
Response.Cookies["UserSettings"].Expires = DateTime.Now.AddDays(1d);
HttpCookieオブジェクトのインスタンスを作成してCookieに書き込む
HttpCookie
タイプのオブジェクトインスタンスを作成し、名前を指定します.Cookies
セットに追加します.以下のコード例は、UserSettingsという名前のCookieを示すためにmyCookieというHttpCookie
オブジェクト例を示す.
HttpCookie myCookie = new HttpCookie("UserSettings");
myCookie["Font"] = "Arial";
myCookie["Color"] = "Blue";
myCookie.Expires = DateTime.Now.AddDays(1d);
Response.Cookies.Add(myCookie);
堅牢なプログラミング
デフォルトでは、Cookiesは同じドメインのすべてのページで共有されますが、
Path
のプロパティを設定することで、Cookiesを特定のサブディレクトリに制限することができます.Cookieがアプリケーションのすべてのディレクトリのすべてのページにアクセスできるようにするには、Path
プロパティを設定せずに、アプリケーションのルートディレクトリのページに設定します.Cookieの有効期間を指定しないと、このCookieはクライアントコンピュータで継続的に保持できず、ユーザーのセッションステータスとともに失効します.
Cookiesは
String
タイプの値しか格納できません.Cookieに格納する前に、文字列以外の値を文字列に変換する必要があります.ほとんどのデータ型は、ToString
メソッドを呼び出すことによって実現される.データ型を文字列に変換する方法については、対応するタイプの〔ToString
メソッド〕を参照してください.セキュリティ
Cookieにユーザー名やパスワードなどの機密情報を格納しないでください.Cookieセキュリティの詳細については、「ASP.NET Cookiesの概要].