快速业务通道

ASP.NET企业开发框架IsLine FrameWork系列之十二

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20

使用Session、Cookie与安全支持

今天来介绍IsLine.HttpContent.HttpContentProvider命名空间中关于Session与Cookie的支持。

这是IsLine FrameWork中一个常用的组件,使用这个组件可以为整站程序提供统一的Cookie配置属性 ,例如Cookie加密方式、是否HttpOnly、是否打开https安全选项、以及默认作用域。CookieProvider是 该命名空间下的类,在该类初始化时,会自动加载web.config文件中的 Cookie节点配置,读取成功后会 加载于整个web站点,这些属性不需要出现在程序中。

web.comfig节点配置:

在</configSections>与<appSettings>之间加入以下配置:

代码

<IsLine.HttpContent.Configuration>
   <Cookie>
    <Cryptography>False</Cryptography>
    <IsHttpOnly>True</IsHttpOnly>
    <IsSecure>False</IsSecure>
    <Domain>Default</Domain>
   </Cookie>
  </IsLine.HttpContent.Configuration>

在<configSections>与</configSections>之间加入以下节点:

<sectionGroup name="IsLine.HttpContent.Configuration">
         <section name="Cookie" type="IsLine.Data.Configuration.SuitConfig"/>
      </sectionGroup>

然后就可以在程序中使用这个Provider了。在<IsLine.HttpContent.Configuration>节点中, Cryptography表示是否启用Cookie的加密,它有True和Fasle两个值,如果值为True,在对Cookie进行新 建或更新时,Provider将会自动启用IsLine.Security.Cryptography命名空间下的Encrypting方法进行加 密,在读取 Cookie时,Provider将会自动启用IsLine.Security.Cryptography命名空间下的Decrypting 方法进行解密,关于IsLine.Security.Cryptography信息后面会有介绍。在加密与解密时,会用到种子字 符串,种子在web.config中添加节点进行配置:

<add key=" IsLine.Security.Configuration.TokenKey " value="IsLine"/>

配置好后,Cryptography节点的值就可以使用True了,这时查看硬盘上的Cookie信息,就是已经加密 过的了。

IsHttpOnly对应Cookie的HttpOnly属性,该属性指示是否只能在服务器端获取到用户Cookie,如果该 值为True,那么 Javascript、Flash等客户端方法,将无法获取到Cookie。这需要IE6的SP1以上版本的浏 览器支持。

IsSecure对应Cookie的 Secure属性,如果该属性为True,那么cookie就只能通过https或其他安全协 议才能传输,在http中是无效的。置了secure属性不代表其他人不能看到你机器本地保存的cookie,只保 证cookie与WEB服务器之间的数据传输过程加密,而保存在本地的cookie文件并不加密。如果想加密本地 存储的Cookie,请设置Cryptography节点为True。

Domain 对应Cookie的Domain属性,该属性指明了Cookie的作用域。比如有一个站点www.abc.com,后来 又新增了类似isline.abc.com的站点,为了实现web站点的cookie共享,就需要对cookie的domain重新设 置了,这时Domain值可以设置为abc.com,这样基于abc.com的网站都可以共享Cookie了。

这就是CookieProvider的方便之处,只需要简单的配置,就可以对整站Cookie进行统一的管理!

CookieProvider同样实现了Capability接口,但它与Cache类不同的是,它只实现了IBaseCapability 接口:

public class CookieProvider : IBaseCapability
   {
     public CookieProvider()
     {
       //
       // TODO: 在此处添加构造函数逻辑
       //
     }
}

IBaseCapability接口内

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号