日期:2014-05-17 浏览次数:21051 次
几乎每个系统都要登录,我看过一些系统直接在每个页面的 Page_Load 里面判断 if(session["user"] == null) ,来实现登录判断。我认为这样不好,维护性太差。
今天我要实现的就是系统全局登录逻辑判断。
还是直接贴代码了,代码能说明一切。
首先我们定义一个 SiteUser 类。
/// <summary> /// 本网站需要记录的信息 /// </summary> public class SiteUser { public int Id { get; set; } public string UserName { get; set; } public DateTime LoginTime { get; set; } }
?
然后定义个 PassportManager 类,用来维护客户端和服务器端的状态信息。
/// <summary> /// 系统账户管理,可以用 Session 或 Cookie 来管理 /// </summary> public class PassportManager { /// <summary> /// 记录当前用户的信息 /// </summary> /// <param name="siteUser"></param> public static void SaveSiteUser(HttpContext context, SiteUser siteUser) { if (context == null) { throw new ArgumentNullException("context"); } if (siteUser == null) { throw new ArgumentNullException("siteUser"); } if (context.Session == null) { throw new NotSupportedException("当前上下文的 Session 为 Null,无法记录用户信息!"); } context.Session["currentUser