まず、私のプロジェクトについて説明させてください。テキストボックスと署名フィールドに追加する情報を含むフォームです。署名をクリックすると、署名する別のページにリダイレクトされ、フォームに戻って署名が画像に挿入されます。
ポイントは、署名ページに移動したときにフォーム情報を Cookie に入れて、署名ページから戻ったときにそれらを元に戻すことができるようにすることです。
問題は、他のページに到達すると、Cookie のコンテンツがめちゃくちゃになることです。ページに簡単なヘブライ語を書き込もうとしても、問題はありません。
これは、Cookie を保存するコードです。
protected void ReCapture(object sender, EventArgs e)
{
string s = "";
foreach (Control c in form1.Controls)
{
if (c.GetType() == typeof(TextBox))
{
s += ((TextBox)c).Text + ":" + ((TextBox)c).ID + ",";
}
if (c.GetType() == typeof(Image))
{
s += ((Image)c).ImageUrl + ":" + ((Image)c).ID + ",";
}
}
Response.Cookies.Remove("Controls");
HttpCookie hc = new HttpCookie("Controls",s.Remove(s.Length - 2));
hc.Expires.AddHours(2);
hc.Path = "/";
Response.Cookies.Add(hc);
Response.Redirect("SignaturePage.aspx?id=" + ((Control)sender).ID);
}
これは署名ページのコードです (実際には何もありません)
protected void Save(object sender, EventArgs e)
{
Session["TheSignature"] = Request.Form["TheData"];
Response.Redirect("Test.aspx");
}
なぜこうなった?