基于ASP.NET下表单认证的三种登录机制的比较

来源 :计算机光盘软件与应用 | 被引量 : 0次 | 上传用户:wcs_ly
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:登录机制控制着用户的访问权限,关系到整个网站的安全,因此在许多书籍和开放的实例代码中,仅简单的介绍了使用Session的方法,而对于其他方法很少涉及。本文对常用的三种登录机制进行探讨。
  关键词:登录机制;ASP.NET;表单认证
  中图分类号:TP393.092 文献标识码:A文章编号:1007-9599 (2011) 12-0000-02
  Three Login Mechanisms Comparison of Forms Authentication
  Based on ASP.NET
  Li Rui,Lv Qiong
  (Qujing Normal University,College of Physics and Electronic Engineering,Qujing650011,China)
  Abstract:Login mechanisms controlled the user’s access rights and related to the security of the entire site.In many books and opening codes,it only simply said the way of using Session,while for the other methods were rarely involved.Three common login mechanisms were discussed in the paper.
  Keywords:Login Mechanisms;ASP.NET;Forms Authenticaiton
  一、引言
  会员登录是网站开发中最基本的环节,主要包括身份信息验证和验证码技术。验证码技术可以阻止用户的非法操作,在此不做讨论。身份信息验证的过程就是将客户端用户输入的身份信息发送回服务器,服务器对身份信息验证后进行相应的处理,对于合法用户的信息将进行“记录”,“记录”的方式主要有三种,本文对此进行讨论。
  二、三种登录机制的实现
  登录机制在设计时主要有三种机制,一种就是会话(Session)机制,是最简单的一种方法;另一种是使用的Cookie的机制,这是一种比较常用的方法;还有一种是缓存(Cache)机制,可以控制一个用户在同一个网站只能登录一次,避免一个用户名在多个地址进行登录。
  下面分别讨论三种登录机制的具体实现方式,测试环境:Windows XP SP3,Microsoft Visual Studio 2005。
  (一)页面设计
  登录页面仅作简单设计,页面效果如图1:
  
  图1:登录页面效果图
  (二)后台代码
  1.会话(Session)机制
  Session直接翻译成中文比较困难,一般都译成时域。在ASP.NET中Session是用于保持状态的基于Web服务器的方法。Session允许通过将对象存储在Web服务器的内存中在整个用户会话过程中保持任何对象[1]。其使用方式比较简单,主要代码如下:
  (1)登录页面(Login.aspx)后台代码
  if(登录信息验证正确)
  {
   Session[“username”]=用户名;//和服务器联系,建立身份信息
   Response.Redirect(“Request.aspx”);//跳转到请求访问的页面[Request.aspx]
  }
  else
  {
   Response.Write(“”);//跳出登录错误警告
  }
  (2)请求访问页面(Request.aspx)后台代码
   protected void Page_Load(object sender,EventArgs e)//页面载入时发生事件
   {
   if(Session[“Username”]==null)
   Response.Redirect(“Login.aspx”);//如果缺少身份信息,跳转回登录页面
   }
  2.Cookie机制
  Cookie有时也用其复数形式Cookies,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。定义于RFC2109(已废弃),最新取代的规范是RFC2965[2]。对于这种登录方式,在ASP.NET中有专门的类来管理和实现,主要代码如下:
  (1)登录页面(Login.aspx)后台代码[3]
  if(登录信息验证正确)
  {
   Forms Authentication Ticket ticket=new Forms Authentication Ticket(1,uid,
  DateTime.Now,Date Time.Now.Add Minutes(30),false,urole,
  Forms Authentication.Forms Cookie Path);//建立身份认证票据
  string enc Ticket=Forms Authentication.Encrypt(ticket);//加密身份认证票据
  Http Cookie hc=new Http Cookie(Forms Authentication.Forms CookieName,encTicket);
  Reponse.Cookies.Add(hc);//创建Cookie,并和服务器进行注册
   Response.Redirect(“Request.aspx”);//跳转到请求访问的页面[Request.aspx]
  }
  else
  {
   Response.Write(“”);//弹出登录错误警告
  }
  (2)请求访问页面(Request.aspx)后台代码
   protected void Page_Load(object sender,Event Args e)//页面载入时发生事件
   {
   if(Request.Cookies[Forms Authentication.Forms Cookie Name]==null)
   Response.Redirect(“Login.aspx”);//如果缺少身份信息,跳转回登录页面
   }
  3.缓存(Cache)机制
  在ASP.NET中,Cache对象主要用于Web应用程序的缓存。对于每个应用程序都需要创建一个Cache对象的一个实例,并且只要对应的应用程序域保持活动,则该实例就有效。这里的实现方式是把用户的登录信息保存到Cache对象中,并设置过期时间为Session变量失效时间,因此一旦Session变量失效,则Cache对象就会过期。主要代码如下[4]:
  (1)登录页面(Login.aspx)后台代码
  if(登录信息验证正确)
  {
   string str_key=”登录名”+”_”+”登录密码”;//创建登录信息唯一标识
   string str_user=Convert.ToString(Cache[str_key]);//获取Cache中相应的值
   if(str_user==String.Empty)//如果没有该值,表明没有登录或已超时
  {
  TimeSpan SessTimeOut=new TimeSpan(0,0,HttpContext.Current.Session.TimeOut,0,0);//设置时间间隔
  HttpContext.Current.Cache.Insert(str_key,str_key,null,DateTime.MaxValue,SessTimeOut,CacheItemPriority.NotRemovable,null);//将登录信息加入缓存
  Session[“Username”]=str_key;//和服务器联系,建立身份信息
  }
   Response.Redirect(“Request.aspx”);//跳转到请求访问的页面[Request.aspx]
  }
  else
  {
   Response.Write(“”);//跳出登录错误警告
  }
  (2)请求访问页面(Request.aspx)后台代码
   protected void Page_Load(object sender,EventArgs e)//页面载入时发生事件
   {
   if(Session[“Username”]==null)
   Response.Redirect(“Login.aspx”);//如果缺少身份信息,跳转回登录页面
   }
  三、三种登录机制的比较
  登录机制 特点 实现难易程度 服务器开销 执行效率
  Session 实现简单,单次使用 简单 中 快
  Cookie 存于客户端,服务器开销小,可以长期有效,简化下次登录 难 小 慢
  Cache 避免用户多处登录 一般 大 中
  
  四、结束语
  登录机制的使用需根据网站的设计选择使用,对于安全性要求较低、服务器性能不高的网站可以选择较简单的方式;而对于安全性要求较高、服务器性能较高的网站可以混合使用。
  参考文献:
  [1]百度百科.Session[EB/OL].2010,3:7
  http://baike.baidu.com/view/25258.htm
  [2]百度百科.Cookie[EB/OL].2010,4:2
  http://baike.baidu.com/view/835.htm
  [3]微软.MSDN库[EB/OL].2010,5:28
  http://msdn.microsoft.com/zh-cn/library/ms123401.aspx
  [4]周峰,王征.ASP.NET 3.5网络程序设计案例集锦[M].北京:中国水利水电出版社,2009,4:478-483
  [基金项目]云南省教育厅科学研究基金项目“高校物理实验预约管理系统的设计和开发”(08Y0306)
  曲靖师范学院专项研究项目“曲靖师范学院网上物理实验预习系统开发”(2008ZX004)
  [作者简介]李锐(1980-),男,讲师,计算机硕士,主要从事计算机技术和教育技术方面的研究。
  
其他文献
现代社会对电能供应的“安全、可靠、经济、优质”等各项指标的要求越来越高,相应地,电力系统也不断地向自动化提出更高的要求。电力系统自动化技术不断地由低到高、由局部到整
AtLP协议欺骗是网络欺骗行为之一,该文在对AKP协议简要介绍的基础上,主要从以下4个部分:ARP协gg-r作原理、欺骗原理、基于AILP欺骗的实现过程、抵御方法对ARP协议欺骗技术进行了
随着社会形势的不断变化和发展,人们越来越关注计算机网络安全问题。我们必须要采取一些可行性较强的措施,来增强计算机网络的时效性。本文主要阐述了目前计算机安全方面的现
摘要:在信息时代的大背景下,计算机网络行为越来越复杂,传统的研究计算机网络行为的方法已难适应大规模的计算机网络。为更好地管理和控制复杂的计算机网络,提高网络服务的质量,将复杂性理论应用于计算机网络行为的研究,探索出一种复杂网络行为研究新方法。分析计算机网络行为研究的传统方法之不足,阐明复杂性理论应用于计算机网络行为研究的有效性,并概述其发展现状,以及指明其广泛的应用前景。  关键词:计算机网络;网
为了更好地了解新营运高铁客运车站的卫生状况,为进一步提升车站卫生服务质量及制定铁路站车卫生预防措施提供科学依据,对辖区的6个新营运高铁客运车站的微小气候、空气质量
<正> 普通的家庭普通的孩子1975年11月25日,在一个工人家里诞生了一对孪生姐弟,姐姐体重五斤二两,弟弟体重四斤五两.临产时并未发现是双胞胎,姐姐出生后,误认为胎衣之类遗物未离母体,后来,医生发现还有一个婴儿未诞生,十五分钟后小弟弟才出世.小男孩右手六个指头(一岁多切除),头部有被损伤的血迹指痕,眼下方有产钳的伤痕,头骨有一半是
<正> 儒法两家的斗争到秦始皇统治时期(公元前249——前210年)达到了一个新的高峰。这是春秋晚期以来新兴的地主阶级同没落的奴隶主阶级几百年斗争的总结,也是儒法两家一次有历史意义的大决战。秦始皇处在战国末期让会大变革的时代。当时封建制生产关系已经在各诸侯国的经济中占据统治地位,但奴隶制的经济残余势力仍然很大,没落的奴隶主阶级不甘心退出历史舞台,他们还要进行垂死挣扎。因此,新兴地主阶级彻底战胜奴隶主阶级的斗争,
随着网络信息技术的不断发展,计算机的使用在高职院校的普及率已经逐日增长。为了充分发挥校园网的作用和促进校园信息化的健康发展,文章从网络安全方面的攻防,通采用多种分析手
本文通过对新疆农业企业现状进行充分了解的基础上对新疆农业企业“走出去”路径选择问题进行了分析。调研结果表明新疆虽然有很好的自然资源、地理优势及与周边的国家相似文
通过对AutoCAD中连接圆弧的做图原理加以分析,总结归纳出九类连接圆弧的画法,几乎涵盖了所有连接圆弧的画法,大大提高了绘图效率。