<1>
C#中Cookies的存取
什么时候cookie:
<1>Cookie就是保存在浏览器上的内容,用户再次浏览页面的时候想Cookie
中保存文本内容,下次再次访问页面的时候可以取出来上次保存的内容。
总之Cookie就是存储在浏览器里的一些数据
<2>Cookie需要浏览器的支持,浏览器的Cookie是可以禁用的,如果禁用了Cookie
就不能使用了。不过一般不用考虑禁用Cookie的情况
<3>Cookie是与域名有关的,所以163.ccom不能读取baidu.com记录的Cookie
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebApplication1
{
public class FunCookie
{
/// <summary>
/// 创建Cookie和赋值,及设计Cookie有效天数
/// </summary>
/// <param name="strCookieName">Cookie名字</param>
/// <param name="strCookieValue">Cookie的值</param>
/// <param name="intDay">Cookie有效天数</param>
/// <returns>布尔值</returns>
public static bool SetCookie(string strCookieName,string strCookieValue,int intDay )
{
try
{
HttpCookie cookie = new HttpCookie(strCookieName); //创建一个cookie对象
cookie.Value = strCookieValue; //设置cookie的值
cookie.Expires = DateTime.Now.AddDays(intDay); //或cookie.Expires.AddDays(intDay);设置cookie的有效期
System.Web.HttpContext.Current.Response.Cookies.Add(cookie); //将cookie添加到cookies中
return true;
}
catch
{
return false;
}
}
/// <summary>
/// 根据Cookie的名字获取Cookie的值
/// </summary>
/// <param name="strCookieName">要获取的Cookie的名字</param>
/// <returns>Cookie的值(string类型)</returns>
public static string GetCookie(string strCookieName)
{
HttpCookie cookie= HttpContext.Current.Request.Cookies[strCookieName];//获取cookie
if (cookie != null)
{
return cookie.Value; //返回cookie的值
}
else
{
return null;
}
}
/// <summary>
/// 删除Cookie
/// </summary>
/// <param name="strCookieName"></param>
/// <returns></returns>
public static bool DeleteCookie(string strCookieName)
{
try
{
HttpCookie cookie = new HttpCookie(strCookieName);
cookie.Expires = DateTime.Now.AddDays(-1);
HttpContext.Current.Response.Cookies.Add(cookie);
return true;
}
catch
{
return false;
}
}
}
}
<2>
在客户端对Cookie进行存取
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="jquery-1.11.2.js" type="text/javascript"></script>
<script src="jquery.cookie-v1.4.1.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
if ($.cookie("uName") != null) {
//读取key为uName的这个Cookie的值
$("#UserName").val($.cookie("uName"));
}
$("#btnClick").click(function () {
//创建一个key为uName的Cookie ,值为$("#UserName").val() ;有效期为7天
$.cookie("uName", $("#UserName").val(), { expires: 7 });
})
})
</script>
</head>
<body>
<form id="form1">
<input type="text" name="UserName" id="UserName"/>
<input type="button" value="提交" id="btnClick"/>
</form>
</body>
</html>
例2
<script type="text/javascript">
$(function () {
//在客户端写入一个Cookie,浏览器会自动将这Cookie发送到服务器
SetCookie("Age", 25);
//获取服务器响应的Cookie
var a = GetCookie("Name");
})
function GetCookie(name) {//获取指定名称的cookie的值
var arrstr = document.cookie.split("; ");
for (var i = 0; i < arrstr.length; i++) {
var temp = arrstr[i].split("=");
if (temp[0] == name) return unescape(temp[1]);
}
}
//写cookies
function SetCookie(name,value)
{
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
</script>
服务端
namespace MvcApp.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
//向浏览器响应一个Cookie
Response.SetCookie(new HttpCookie("Name", "lily"));
//获取浏览器提交过来的Cookie值
var age = Request.Cookies["Age"];
return View();
}
}
}