快速业务通道

宝刀不老:Cookie

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21
次浏览 Web 站点时, Cookie将会记下用户登录 IP地址, 在Cookie 的有效期内, 当该用户再次发出浏览此 Web 站点中页面的请示时, 浏览器就会和服务器交换 Cookie信息, 识别该用户的身份.

这里制作一个简单的程序. 使用 Cookie 的这个特性防止重复投票.

实现方法是, 将客户端的 IP 地址保存在 Cookie 对象中, 主要代码如下:

保存客户端的IP到Cookie

//判断指定的IP是否已投过票了,如果已经投过了,则弹出提示对话框
string UserIP = Request.UserHostAddress.ToString();
int VoteID = Convert.ToInt32(RadioButtonList1.SelectedIndex.ToString())+1;
//获取名为userIP的Cookie对象
HttpCookie oldCookie=Request.Cookies["userIP"];
//判断该Cookie对象是否存在
if (oldCookie == null)
{
UpdateVote(VoteID);
Response.Write("<script>alert(''投票成功,谢谢您的参与!'')</script>");
//定义新的Cookie对象
HttpCookie newCookie = new HttpCookie("userIP");
newCookie.Expires = DateTime.MinValue;
//添加新的Cookie变量IPaddress,值为UserIP
newCookie.Values.Add("IPaddress", UserIP);
//将变量写入Cookie文件中
Response.AppendCookie(newCookie);
return;
}

然后从Cookie中获取客户端的IP地址并判断该IP地址是否已访问过网站, 如果已访问过, 则弹出提示框, 提示用户, 主要代码如下:

从Cookie中获取客户端IP地址

//从Cookie中获取客户端IP地址
string userIP = oldCookie.Values["IPaddress"];
if (UserIP.Trim() == userIP.Trim())
{
Response.Write("<script>alert(''一个IP地址只能投一次票,谢谢您的参与!'');history.go(-1);</script>");
return;
}
else
{
//创建 HttpCookie 类型的对象并为它分配名称为userID
HttpCookie newCookie = new HttpCookie("userIP");
//为 Cookie 的子项赋值,即将客户端IP地址赋给Cookie的子项,并将其命名为IPaddress
newCookie.Values.Add("IPaddress", UserIP);
//设置所有 Cookie失效期
newCookie.Expires = DateTime.MinValue;
//将该 Cookie 添加到 Cookies 集合中
Response.Cookies.Add(newCookie);
//Response.AppendCookie(newCookie);
UpdateVote(VoteID);
Response.Write("<script>alert(''投票成功,谢谢您的参与!'')</script>");
return;
}

12. 使用 Cookie 实现自动登录

一般网站都会提供自动登录服务, 简单的说就是你第一次(或某一次)登录成功后在某个时间段内不需要再输入用户名或密码进行登录.

这很网站会提供给用户一个选择时间段的服务. 下面这个演示示例中, 用户可以在两个星期内, 登录时不再要求输入密码.

代码如下:

使用Cookie将实现自动登录

if (Request.Cookies["UserName"] != null)
{
Response.Redirect("B.aspx?UserName=" + Request.Cookies["UserName"].Value);
}
else
{
if(this.txtName.Text=="A"&&this.txtPassword.Text=="a")
{
if (CheckBox1.Checked == true)
{
Response.Cookies["UserName"].Value = System.Web.HttpUtility.UrlEncode(txtName.Text);
Response.Cookies["UserName"].Expires = DateTime.Now.AddDays(14);
}
Response.Redirect("B.aspx?UserName=" + System.Web.HttpUtility.UrlEncode(txtName.Text));
}
else
{
Response.Write("<script>alert(''输入出错!'')</script>");
}
}

13. 使用 Cookie 实现单点登录

单点登录( Single Sign On, SSO)是目前比较流行的企业业务整

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号