ASP.NET実践:Cookie書き込み

2531 ワード

Cookiesは、履歴やユーザの好みなどの特定のユーザ情報をWebアプリケーションに格納する方法を提供する.Cookieは,要求と応答とともにWebサーバとクライアント間で往復伝送される少量のテキストである.Webアプリケーションは,ユーザがウェブサイトにアクセスする際にCookieに含まれる情報を読み取ることができる.
ブラウザはクライアントコンピュータのCookiesを管理します.Cookiesは、HttpResponseという名前の属性のセットを露出したCookiesオブジェクトを使用してクライアントに送信される.Webアプリケーションでブラウザに送信するCookiesは、このセットに追加する必要があります.新しいCookieを書き込むときは、NameValueのプロパティを指定する必要があります.各Cookieには、Webアプリケーションがブラウザの将来のリクエストで認識できるように、一意の名前が必要です.
Cookieをユーザコンピュータに書き込むには2つの方法がある.CookiesのセットにCookieのプロパティを直接設定したり、HttpCookieの新しいオブジェクトインスタンスを作成してCookiesのセットに追加したりすることができます.ASPにいなければなりませんNETページがクライアントに表示される前にCookiesを作成します.たとえば、Page_LoadイベントプロセッサにCookieを書き込むことができますが、Page_UnloadイベントプロセッサにCookieを書き込むことはできません.ページライフサイクルの詳細については、[ASP.NETページライフサイクルの概要].
詳細については、[ASP.NET Cookiesの概要].

Cookiesコレクションに属性を設定してCookieに書き込む

  • Cookieに書き込みたいASP.NETページでは、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タイプのオブジェクトインスタンスを作成し、名前を指定します.
  • Cookieサブキーの値を指定し、Cookieのプロパティを設定します.
  • このCookieを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の概要].