آشنایی با Cookie در Asp.Net
شنبه 19 اردیبهشت 1394در این مقاله سعی در توضیح Cookie داریم .یکی از حافظه های موقتی که می توانیم اطلاعات را در سمت کاربر ذخیره کنیم کوکی می باشد , همچنین با ذکر مثال سعی شده تا درک بهتری از کوکی داشته باشیم
کوکی قسمتی از اطلاعات در فرم میباشد که یک فایل متن کوچک را میتوان در آن ذخیره کرد. این اطلاعات در حافظه کاربر ذخیره میشود .این عملیات توسط صفحات وب در سمت سرور انجام می پذیرد .همچنین کاربران میتوانند کوکی را تغییر دهند .بنابراین هرگز مقادیری از قبیل : نام کاربری , رمز عبور , آدرس ایمیل , شماره را در کوکی ذخیره نکنید .بنابراین ما میتوانیم حد اقل 300 کوکی را در هر وب سایت ثبت کنیم و حد اقل 4096 بایت حجم در هر کوکی ذخیره کنیم .اکنون به نجوه ایجاد کوکی می پردازیم :برای این کار سه روش در اختیار داریم
روش اول : HttpCookie Cookies1 = new HttpCookie("Cookies1"); Cookies1.Value = txt1.Text; Response.Cookies.Add(Cookies1);
روش دوم :
Response.Cookies["Cookies1"].Value = txt1.Text;
روش سوم :
Response.Cookies["Cookies"]["Name"] = txt1.Text; Response.Cookies["Cookies"]["class"] = txt2.Text; Response.Cookies["Cookies"]["sec"] = txt3.Text; Response.Cookies["Cookies"]["Roll"] = txt4.Text;
چگونه به مقادیر کوکی دسترسی داشته باشیم ؟ در ادامه نیز دو روش برای دستیابی به مقادیر کوکی وجو دارد
روش اول :
String cooks=Request.Cookies[“Cookies”].Value;
روش دوم برای دستیابی به کوکی میباشد که در خود چندین مقدار را ذخیره کرده است :
String name=Request.Cookies["Cookies"]["Name"]; String class=Request.Cookies["Cookies"]["class"]; String sec=Request.Cookies["Cookies"]["sec"]; Int roll= String name=Request.Cookies["Cookies"]["roll"];
نحوه حذف مقادیر کوکی مطابق دستور زیر میباشد :
Response.Cookies["Cookies1"].Expires = DateTime.Now.AddHours(-1);
در ابتدا یک صفحه با نام CreateCookie.aspx را ایجاد می کنید
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CreateCookies.aspx.cs" Inherits="CreateCookies" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <b>Pleas enter your Name:</b> <br /><br /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <br /><br /> <asp:Button ID="Button1" runat="server" Text="Submit" onclick="Button1_Click1"/> </div> </form> </body> </html>
در قسمت کد نویسی دستورات زیر را وارد می کنیم :
using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Threading; public partial class CreateCookies : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click1(object sender, EventArgs e) { //First Way HttpCookie Cookies1 = new HttpCookie("Cookies1"); Cookies1.Value = TextBox1.Text; Cookies1.Expires = DateTime.Now.AddHours(1); Response.Cookies.Add(Cookies1); // Second Way Response.Cookies["Cookies2"].Value = TextBox1.Text; Response.Cookies["Cookies2"].Expires = DateTime.Now.AddHours(1); // Multiple values in single cookie Response.Cookies["Cookies3"]["name"] = "AAFIA"; Response.Cookies["Cookies3"]["class"] = "class-ix"; Response.Cookies["Cookies3"]["sec"] = "A"; Response.Cookies["Cookies3"]["roll"] = "4"; Response.Cookies["Cookies3"].Expires = DateTime.Now.AddDays(1); Response.Redirect("ResultCookis.aspx"); } }
سپس مقادیری که در کوکی ثبت شده است را در صفحه ای دیگر فراخوانی میکنیم :
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ResultCookis.aspx.cs" Inherits="ResultCookis" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <b>Now See Cookies Data Here: </b> <br /><br /> first way <br /> <asp:Label ID="Label1" runat="server" Text=""></asp:Label> <br /> second way <br /> <asp:Label ID="Label2" runat="server" Text=""></asp:Label> <br /> multiple Value in single Cookies <br /> <asp:Label ID="Label3" runat="server" Text=""></asp:Label> <asp:Label ID="Label4" runat="server" Text=""></asp:Label> <asp:Label ID="Label5" runat="server" Text=""></asp:Label> <asp:Label ID="Label6" runat="server" Text=""></asp:Label> <asp:Label ID="Label7" runat="server" Text=""></asp:Label> </div> <br /><br /> <asp:Button ID="Button1" runat="server" Text="Delete All Cookies" onclick="Button1_Click" /> <br /><br /> </form> </body> </html>
دستورات فراخوانی مقادیر کوکی نیز به ترتیب زیر میباشد :
using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Web.Configuration; using System.Data.SqlClient; public partial class ResultCookis : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (Request.Cookies["Cookies1"] != null) { string txtbox = Request.Cookies["Cookies1"].Value; //For First Way Label1.Text = txtbox.ToString(); //for 2nd Cookie string txtbox2 = Request.Cookies["Cookies2"].Value; Label2.Text = txtbox2.ToString(); //For Multiple values in single cookie Label3.Text = Request.Cookies["Cookies3"]["name"]; Label4.Text = Request.Cookies["Cookies3"]["class"]; Label5.Text = Request.Cookies["Cookies3"]["sec"]; Label6.Text = Request.Cookies["Cookies3"]["roll"]; } else { string msg = "No Cookies"; Label7.Text = msg; } } protected void Button1_Click(object sender, EventArgs e) { if (Request.Cookies["Cookies1"] != null) { Response.Cookies["Cookies1"].Expires = DateTime.Now.AddHours(-1); } if (Request.Cookies["Cookies2"] != null) { Response.Cookies["Cookies2"].Expires = DateTime.Now.AddHours(-1); } if (Request.Cookies["Cookies3"] != null) { Response.Cookies["Cookies3"].Expires = DateTime.Now.AddDays(-1); } Response.Redirect("ResultCookis.aspx"); //to refresh the page } }
در ادامه مقادیر ثبت شده در کوکی را در صفحه ای دیگر می توانیم مشاهده کنیم .
- ASP.net
- 3k بازدید
- 0 تشکر