列举ASP.NET页面之间传递值的几种方式(2)

Cookie是在客户端的系统或客户端浏览器内存上创建的小文件(如果是临时的)。我们可以在客户端系统中存储小块信息,并在需要时使用它。 最有趣的是它与用户透明地工作 。它可以轻松地在Web应用程序的任何位置使用。 Cookies以纯文本格式存储信息 。如果Web应用程序使用cookie,则服务器发送cookie,客户端浏览器将存储它。然后,浏览器在下次请求页面时将cookie返回给服务器。使用cookie的最常见示例是 存储用户信息,用户首选项,密码记忆选项 等.Cookies有许多优点和缺点。

Cookies是如何开始的?

当客户端向服务器请求时,服务器将cookie发送到客户端。后续请求可以引用相同的cookie。例如,如果 codeproject.com 将会话ID存储为cookie,则当客户端第一次在服务器上命中时,服务器会生成会话ID并将其作为cookie发送到客户端

浏览器和Web服务器负责交换cookie信息。对于不同的站点,浏览器以不同的方式保留cookie 如果页面需要来自cookie的信息,当该URL被命中时,首先它在本地系统中搜索cookie信息,然后将其移动到具有该信息的服务器。

Cookies的优点

以下是在Web应用程序中使用cookie的主要优点:

它的使用和实现非常简单。

浏览器负责发送数据。

对于包含cookie的多个站点,浏览器会自动排列它们。

Cookie的缺点

它以简单的文本格式存储数据,因此根本 不安全 。

Cookie数据有一个大小限制( 4096字节/ 4KB )。

允许的最大cookie数量也是有限的。大多数浏览器将cookie的数量限制为20.如果新的cookie出现,旧的cookie将被丢弃。有些浏览器最多支持 300 个。

如何创建Cookie

要使用cookie,我们需要使用命名空间System.web。

方式1(使用HttpCookies类)

HttpCookie StudentCookies = new HttpCookie("StudentCookies"); StudentCookies.Value = TextBox1.Text; StudentCookies.Expires = DateTime.Now.AddHours(1); Response.Cookies.Add(StudentCookies);

方式2(直接使用Response)

Response.Cookies["StudentCookies"].Value = TextBox1.Text; Response.Cookies["StudentCookies"].Expires = DateTime.Now.AddDays(1);

方式3(同一个cookie中的多个值)

Response.Cookies["StudentCookies"]["RollNumber"] = TextBox1.Text; Response.Cookies["StudentCookies"]["FirstName"] = "Abhimanyu"; Response.Cookies["StudentCookies"]["MiddleName"] = "Kumar"; Response.Cookies["StudentCookies"]["LastName"] = "Vatsa"; Response.Cookies["StudentCookies"]["TotalMarks"] = "499"; Response.Cookies["StudentCookies"].Expires = DateTime.Now.AddDays(1);

查看代码,看看我们如何创建cookie并使用Web响应添加它。

已创建的cookie将一直存在,直到浏览器关闭。我们可以坚持使用cookie。

如何从Cookies中读取数据

现在是时候从cookie中检索数据了。在阅读cookie之前,首先我们需要检查是否找到了cookie。在阅读cookie之前检查cookie始终是一个好习惯,因为浏览器可能已禁用c​​ookie。

string roll = Request.Cookies["StudentCookies"].Value; //For First Way string roll = Request.Cookies["StudentCookies"].Value; //For Second Way string roll; roll = Request.Cookies["StudentCookies"]["RollNumber"]; roll = roll + " " + Request.Cookies["StudentCookies"]["FirstName"]; roll = roll + " " + Request.Cookies["StudentCookies"]["MiddleName"]; roll = roll + " " + Request.Cookies["StudentCookies"]["LastName"]; roll = roll + " " + Request.Cookies["StudentCookies"]["TotalMarks"]; Label1.Text = roll;

如何清除cookie信息?

我们可以在cookie文件夹中清除客户端机器上的cookie信息

设置到cookie对象的到期时间

userInfo.Expires = DateTime.Now.AddHours(1);

它会在一小时内清除cookie。

三、Application对象

Application对象的作用范围是整个全局,也就是说对所有用户都有效。它在整个应用程序生命周期中都是有效的,类似于使用全局变量一样,所以可以在不同页面中对它进行存取。它和Session变量的区别在于,前者是所有的用户共用的全局变量,后者是各个用户独有的全局变量。

举个例子:网站访问数。多个请求访问时都可以对它进行操作。

优点:1.使用简单,消耗较少的服务器资源。

2.不仅能传递简单数据,还能传递对象。

3.数据量大小是不限制的。

缺点:1.作为全局变量容易被误操作。所以单个用户使用的变量一般不能用application。

使用方法:1.在源页面的代码中创建你需要传递的名称和值构造Application变量:Application["Nmae"]="Value(Or Object)";

2.在目的页面的代码使用Application变量取出传递的值。Result = Application["Nmae"]

注意:常用lock和unlock方法用来锁定和解锁,为了防止并发修改。

string name;   Application.Lock();   name = Application["name"].ToString();   Application.UnLock();

四、Server.Transfer

终止当前页面的执行并开始执行当前请求的新页面。

Server.Transfer("Logon.aspx", true);

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wdsgxp.html