.net的FormsAuthenticationTicket session、cookies验证用户信息用法的区别

FormsAuthenticationTicket session、cookies为3种经常使用的验证用户登录的方法,下边说一下他们的区别:
 
1)FormsAuthenticationTicket 是。net framework2.0及其以上版本中固有的验证机制,其本质是把用户的cookies信息加密存储在客户端,这样能够部分下降服务器端的内存消耗,没必要像session那样把用户信息存储在服务端内存当中,而其数据的安全性则有微软来保证,详细用法请参考msdn官方文档: http://msdn.microsoft.com/zh-cn/library/system.web.security.formsauthenticationticket_members(v=vs.80).aspx
 
2)session 使用session存储用户信息使用发放简便,可在含有http上下文的任意位置添加session对象,而且能够把对象赋予session,由于session为object类型,可被任意对象赋值,session本质上实际上是在服务器端内存中开辟一段存储区用于存放session的值,而在客服端(浏览器)留下一个cookies标记,该标记为服务器端的session的一个id,不是session对象的具体内容,这样相对于数据安全来讲相对安全,但也只是相对,这样作会对服务器端内存有所消耗,但影响应该不是很大,除非你的网站同时在线人数不少。不过session机制仍是有一些缺陷,iis 中因为有进程回收机制,系统繁忙的话Session会丢失, IIS重启也会形成Session丢失。这样用户就要从新登陆或者从新添加购物车、验证码等放到Session中的信息。因此微软才推荐使用FormsAuthenticationTicket票据方式来验证用户登录。
 
3)cookies 以上2种方式都间接的使用了cookies,使用cookies来验证用户身份时,记得最好加密一下,除非你设定cookies的过时的时间,否则仍是很容易被***所利用,形成没必要要的用户信息泄露。但cookies存储数据的大小有限制,平均下来不超过4K,有的浏览器支撑比较高,但那也只是有的不是全部浏览器都是,我们只能取最小值。
 
 
以上只是本人的拙见,不对之处但愿你们给予指教,共同进步
相关文章
相关标签/搜索