==[[ASP.NET 2005 ページ間データ受け渡し]]== | [[SCWCD]]] ASP.NET 2005] | [[ASP.NET]] | [[Visual Studio]] | [[C#][[SCWCD] | [[[[Java EE(SCWCD)]]
*http://msdn.microsoft.com/ja-jp/netframework/ee692374.aspx
===[[Cookie]]===
*Web アプリケーションは履歴やユーザー設定などのユーザー固有の情報を格納できます
*ブラウザは、Cookie ブラウザは、[[Cookie]] をクライアント コンピュータで管理します*Cookies [[Cookie]]s というプロパティを公開する HttpResponse オブジェクトを使用してクライアントに送信されます*Web アプリケーションからブラウザに送信するすべての [[Cookie ]] は、このコレクションに追加する必要があります*Cookie は、ASPは、[[ASP.NET ]] ページをクライアントにレンダリングする前に作成する必要があります====[[Cookie ]] を記述するには、2 つの方法=========[[Cookie ]] のプロパティを直接 Cookies [[Cookie]]s コレクションに設定=====
Response.Cookies["UserSettings"]["Font"] = "Arial";
=====HttpCookie Http[[Cookie]] オブジェクトのインスタンスを作成してから Cookies [[Cookie]]s コレクションに追加===== HttpCookie myCookie Http[[Cookie]] my[[Cookie]] = new HttpCookieHttp[[Cookie]]("UserSettings");
myCookie["Font"] = "Arial";
Response.Cookies[[Cookie]]s.Add(myCookiemy[[Cookie]]);
====Session データの関連付け====
*一意の識別子を使用して特定のブラウザ セッションに関連付けられます
*既定では、この識別子はブラウザの無期限のセッション [[Cookie ]] に格納*セッション識別子を URL U[[R]]L に格納するようにアプリケーションを構成することもできる**cookieless 属性の UseDeviceProfile UseDevice[[Profile]] の値を指定すると、ブラウザが Cookie をサポートしているかどうかを確認でる。**cookieless 属性の AutoDetect の値を指定すると、ブラウザで [[Cookie ]] が有効になっているかどうかも確認できる。**UseDeviceProfile UseDevice[[Profile]] を指定しCookie がサポートされている、または AutoDetect を指定したときに Cookie が有効ならセッション識別子を Cookie に格納**それ以外の場合はセッション識別子を URL U[[R]]L に格納します。
====値を読む====
string firstName = (string)(Session["First"]);
===QueryString===
*HttpRequestHttp[[R]]equest.QueryString プロパティに、クライアントから送信されたクエリ文字列変数のコレクションを格納
===HttpRequestHttp[[R]]equest.Params ===*QueryString、Form、ServerVariables、Cookies QueryString、Form、ServerVariables、[[Cookie]]s の各項目が組み合わされたコレクションを取得===Session と [[Cookie ]] と QueryString を利用する例===
====Defaut.aspx====
=====画面=====
|-
|HyperLink1
|NavigateUrlNa[[vi]]gateUrl
|~/Page2.aspx?state=1
|QueryStringの例
|-
|HyperLink2
|NavigateUrlNa[[vi]]gateUrl
|~/Page2.aspx?state=2
|QueryStringの例
if (!IsPostBack)
{
// [[Cookie ]] の設定 Response.Cookies[[Cookie]]s.Add(new HttpCookieHttp[[Cookie]]("Data1", "Hello"));
// Session の設定
Session["Data2"] = "こんにちは";
protected void Button1_Click(object sender, EventArgs e)
{
// [[Cookie ]] に値を設定
Response.Cookies["Data1"].Value = TextBox1.Text;
// QueryStringを付加してリダイレクト
Response[[R]]esponse.Redirect[[R]]edirect("~/Page2.aspx?state=1");
}
protected void Button2_Click(object sender, EventArgs e)
Session["Data2"] = TextBox1.Text;
// QueryStringを付加してリダイレクト
Response[[R]]esponse.Redirect[[R]]edirect("~/Page2.aspx?state=2");
}
Label1.Text = Request.QueryString["state"];
// [[Cookie ]] を利用して受け渡された値を表示
Label2.Text = Request.Cookies["Data1"].Value;
Label3.Text = (String)Session["Data2"];
// すべてのパラメータを含む Request[[R]]equest.Params の内容を確認
StringBuilder sb = new StringBuilder();
NameValueCollection p = Request[[R]]equest.Params;
for (int i=0; i < p.Count; i++) {
sb.Append(String.Format("{0} = {1}<br/>", p.GetKey(i), p.Get(i)));