首页 > 代码库 > 重写page的OnInit(学习中总结的)
重写page的OnInit(学习中总结的)
在写b/s框架的系统的时候,我们会发现,我们经常会在不同的网页中验证Session是否存在,,而我这里没有用Session,用的是MemCache技术,其实它就是键值对。
只不过将Memcache中的键,当Cookies中的值存储,然后,验证的时候,返回一步一步获取Memcache中的值。
为了不用每次判断Cookies["sessionid"]是否存在,我们可以把复用代码写在system.Web.UI.Page中的OnInit中,
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Common { public class CheckSessionInfo:System.Web.UI.Page { public BookShop.Model.User LoginUser { get; set; } protected override void OnInit(EventArgs e) { if (Request.Cookies["sessionId"] != null)//判断存储自己定义的sessionId的值是否为空 { string sessionId = Request.Cookies["sessionId"].Value; //从缓存中取出对应的值. object obj= Common.MemcacheHelper.Get(sessionId); if (obj != null) { LoginUser = obj as BookShop.Model.User;//获取登录用户信息 //重新赋值.(滑动过期时间) // Common.MemcacheHelper.Set(sessionId, obj, DateTime.Now.AddMinutes(20)); } else { Common.WebCommon.GoPage(); } } else { Common.WebCommon.GoPage(); } base.OnInit(e); } } }
当你在创建其他类时,只要继承CheckUserInfo类。不过,希望你看了之后,重视OnInit();
http://msdn.microsoft.com/zh-cn/library/ms178472(v=vs.100).aspx 这个网址说的是
ASP.NET 页生命周期概述
大家可以从msdn了解,Oninit方法再页面生命周期中的执行顺序。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。