当前位置:首页 > 公司荣誉 >

APS.NET Cookie

  • 2017-09-12 15:57:33
  • 浏览:
  • 作者:admin
APS.NET Cookie

Cookie 提供了一种在 Web 应用程序中存储用户特定信息(如历史记录或用户首选项)的方法。Cookie 是一小段文本,伴随着请求和响应在 Web 服务器和客户端之间来回传输。Cookie 包含每次用户访问站点时可由 Web 应用程序读取的信息。

1. 写Cookie

浏览器管理客户端计算机上的 Cookie。使用 HttpResponse 对象可向客户端发送 Cookie,该对象会公开称为 Cookies 的属性。任何需要 Web 应用程序发送到浏览器的 Cookie 都必须添加到此集合中。编写新 Cookie 时,必须指定 Name 和 Value。每个 Cookie 必须有一个唯一的名称,这样在以后当浏览器随同请求发送 Cookie 时,Web 应用程序就可以标识该 Cookie。

默认情况下,Cookie 由位于同一域中的所有页面共享,但可以通过设置 Cookie 的 Path 属性将 Cookie 限制在网站中的特定子文件夹。若要允许应用程序的所有文件夹中的所有页面都检索一个 Cookie,请从应用程序根文件夹中的页面设置该 Cookie,但不要设置 Path 属性。
如果不指定该 Cookie 的过期限制,采集软件,则该 Cookie 将不会保留在客户端计算机上,当用户会话到期时该 Cookie 即到期。
Cookie 仅能存储 String 类型的值。在将任何非字符串值存储到 Cookie 中之前,必须将它们转换为字符串

HttpCookie myCookie = new HttpCookie("Cooker"); myCookie["name"] = "zzh"; myCookie["today"] = "friday"; myCookie.Expires = DateTime.Now.AddDays(1); //myCookie.Expires.AddDays(1); Response.Cookies.Add(myCookie); //Response.AppendCookie(myCookie); myCookie.Domain = "abc.com"; //指定作用域abc.com和子域名如a.abc.com可用 myCookie.Path = "/admin"; //只能用于 admin 文件夹或虚拟根目录中的页面
2. 读Cookie

出于安全原因,您只能读取属于同一域的页所设置的 Cookie。如果已设置 Cookie 的 Path 属性,则只有该域路径中的页和子文件夹能够使用该 Cookie。
在读取特定 Cookie 值时,请测试该 Cookie 是否存在以及它是否具有值,否则将发生异常。
Cookie 中的所有值都作为 String 类型存储,因此若要将 Cookie 值作为其他数据类型使用,必须对值进行相应地转换。

if (Request.Cookies["Cooker"] != null) { string Cooker; if (Request.Cookies["Cooker"]["name"] != null) { Cooker = Request.Cookies["Cooker"]["name"]; } }
3. 删Cookie

不能直接删除用户计算机中的 Cookie。但是,可以通过将 Cookie 的到期日期设置为过去的日期,让用户的浏览器来删除 Cookie。当用户下一次向设置该 Cookie 的域或路径内的页发出请求时,浏览器将确定该 Cookie 已到期并将其移除。

调用 Cookies 集合的 Remove 方法可从服务器端的集合中移除 Cookie,使 Cookie 不会被发送至客户端。但是,如果客户端已存在 Cookie,则该方法无法从客户端将其移除。

if (Request.Cookies["Cooker"] != null) { HttpCookie myCookie = new HttpCookie("Cooker"); myCookie.Expires = DateTime.Now.AddDays(-1d); Response.Cookies.Add(myCookie); } 循环删

HttpCookie aCookie; string cookieName; int limit = Request.Cookies.Count; for (int i=0; i

4. 改Cookie

不能直接修改 Cookie。更改 Cookie 的过程涉及创建一个具有新值的新 Cookie,然后将其发送到浏览器来覆盖客户端上的旧版本 Cookie。下面的代码示例演示如何更改存储用户对站点的访问次数的 Cookie 的值

int counter; if (Request.Cookies["counter"] == null) counter = 0; else { counter = int.Parse(Request.Cookies["counter"].Value); } counter++; Response.Cookies["counter"].Value = counter.ToString(); Response.Cookies["counter"].Expires = DateTime.Now.AddDays(1);
5. Cookie安全

不要将任何关键信息存储在 Cookie 中。例如,不要将用户的密码存储在 Cookie 中,即使是暂时存储也不要这样做。通常,不要将任何信息保存在 Cookie 中,因为一旦它被假冒,就会危及您的应用程序的安全。而是在 Cookie 中保存对信息在服务器上的位置的引用。
将 Cookie 的过期日期设置为可接受的最短实际时间。尽可能避免使用永久 Cookie。
考虑对 Cookie 中的信息加密。
考虑将 Cookie 的 Secure 和 HttpOnly 属性设置为 true。


Cookie.Secure=true 使 Cookie 只能在使用安全套接字层 (SSL) 的连接上传输。SSL 并不能防止保存在用户计算机上的 Cookie 被读取或操作,但可防止 Cookie 在传输过程中被读取,因为 Cookie 已被加密。

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:武汉网站制作公司 http://www.45qun.com

上一篇:Python之美[从菜鸟到高手]--浅拷贝、深拷贝完全解读(c

下一篇:最后一页

相关文章