Cookie可以临时存储数据,并且在网站各页面间进行传递。由于Cookie是存在于客户端,这样对于客户的一些信息如果存储在Cookie中就会不安全,所以一般都是存储用户在特定网站上的ID,以使ID在各页面间进行传递。
以25亿企业网站管理系统中的源码作为实例深刻讲解用C#(asp.net)对Cookie的使用。
我们以25亿企业网站管理系统中对用户登陆后,用Cookie来存储用户的ID为例。首先用js获取用户所输入的用户名和密码,通过异步传输来调用C#验证用户登陆信息函数。
#region 验证用户登陆
/// <summary>
/// 验证用户登陆
/// </summary>
/// <param name="Type">类型</param>
/// <param name="ReMark">自定义条件参数</param>
/// <param name="pageindex">当前页码</param>
/// <param name="pagesize">当前页显示条数</param>
[AjaxPro.AjaxMethod]
public string GetModUserInfo(int Type, string ReMark, int pageindex, int pagesize,string language)
{
string num = "0";
DataTable dt = new DAL.InTable().GetMod(Type, ReMark, pageindex, pagesize, language);
if (dt.Rows.Count > 0)//验证数据库中是否存在于与之相匹配的用户名
{
num = dt.Rows.Count.ToString().Trim();
HttpContext.Current.Response.AppendCookie(new Company.COMM.SetCookie().selSetCookie("htpUserId", "valUserId", dt.Rows[0]["UserInfoId"].ToString().Trim(), 60)); //用户ID存储于Cookie当中
}
return num;
}
#endregion 验证用户登陆
C#中对Cookie的操纵代码封装于Company.COMM公共层中,文件名为SetCookie.cs,封装代码如下:
#region 设置带选择参数Cookies的值和时间,返回HttpCookie类型,用于保存一系列的值
/// <summary>
/// 设置带选择参数Cookies的值和时间,返回HttpCookie类型,用于保存一系列的值
/// </summary>
/// <param name="name">Cookies的名字</param>
/// <param name="val">Cookies的值</param>
/// <param name="date">Cookies的会话时间</param>
/// <returns></returns>
public HttpCookie selSetCookie(string htpName, string name, string val, int date)
{
DateTime dt = DateTime.Now;
HttpCookie htp = new HttpCookie(htpName);
htp.Values.Add(name, val);
// htp.Values.Add("time", dt.ToString());
//htp.Expires = dt.AddMinutes(date);
return htp;
}
#endregion
#region 设置带选择参数Cookies的值和时间,返回HttpCookie类型,用于保存一系列的值
/// <summary>
/// 设置带选择参数Cookies的值和时间,返回HttpCookie类型,用于保存一系列的值
/// </summary>
/// <param name="name">Cookies的名字</param>
/// <param name="val">Cookies的值</param>
/// <param name="date">Cookies的会话时间</param>
/// <returns></returns>
public HttpCookie selSetCookie2(string htpName, string name, string val, int date)
{
DateTime dt = DateTime.Now;
HttpCookie htp = new HttpCookie(htpName);
htp.Values.Add(name, val);
htp.Values.Add("time", dt.ToString());
htp.Expires = dt.AddMinutes(date);
return htp;
}
#endregion
#region 接受带选择参数Cookies的值
/// <summary>
/// 接受带选择参数Cookies的值
/// </summary>
/// <param name="req">Cookies对象</param>
/// <param name="name">接受Cookies的名字</param>
/// <returns>sring值</returns>
public string selGetCookies(HttpCookie req, string name)
{
string result = "";
if (req != null)
{
HttpCookie htp = req;
result = htp.Values[name].ToString();
}
return result;
}
#endregion
}
对Cookie进行获取,读取代码就是: string UserInfoId = new Company.COMM.SetCookie().selGetCookies(HttpContext.Current.Request.Cookies["htpUserId"], "valUserId").ToString().Trim();
C#(asp.net)对Cookie的使用详解完成,表达非常简单,需要深刻体会,请研究25亿企业网站管理系统源码。
作者: 企业网站管理系统
原载: 25亿企业网站管理系统
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。