代码改变世界

Asp.Net MVC && SmartDAL项目实践(三) Cookie的简单利用

2009-09-28 23:10  Amar-Yao  阅读(2253)  评论(2编辑  收藏  举报
  最近一直在忙这个小项目,总算忙完了第一版。从今天开始好好完善一下这个系列。
  今天要说的就是利用Cookie简单的实现"记住我功能"。用户登录时可以选择"记住我"以此在用户机子上记录Cookie,下次登录系统直接从Cookie中读取用户信息。见下图:
 
   那么代码中怎么实现呢?其实很简单,自定义一个Filter,并集成自AuthorizeAttribute。
  
Code
  其实最核心的就是20-29行。如果用户没有通过验证,我们就从Cookie中取用户信息(Cookie中存放的是UserId)。如果没有取到就返回false表示登录失败。如果取到了就通过ControlExt的Initsession方法将完整的用户实体(这里是User类实例)放到Session中。供程序其他部分使用。
  Initsession方法代码见下:
 
Code

  其中涉及的SmartDAL访问数据库的部分代码我们后面章节再详细讨论。

  等等,这里注重架构的朋友又要说了,在这里访问数据库不太合适,使代码的耦合度变大。由于时间比较紧,而且这又只是一个小东西所以我没有太多的关注这些。只是随自己想怎么写就怎么写(典型的XP思想是么?呵呵)。欢迎对此有异议的朋友与我讨论。
  这样把CookieAuthorizeAttribute应用到需要登录验证的Controller或是Action就OK了。
  源代码在已经做了更新,建此系列的首页目录。