重写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方法再页面生命周期中的执行顺序。
重写page的OnInit(学习中总结的)的更多相关文章
- 卷积在深度学习中的作用(转自http://timdettmers.com/2015/03/26/convolution-deep-learning/)
		
卷积可能是现在深入学习中最重要的概念.卷积网络和卷积网络将深度学习推向了几乎所有机器学习任务的最前沿.但是,卷积如此强大呢?它是如何工作的?在这篇博客文章中,我将解释卷积并将其与其他概念联系起来,以帮 ...
 - 作为一名IT从业者,你在工作和学习中,遇到哪些问题
		
版权声明:襄阳雷哥的版权声明 https://blog.csdn.net/FansUnion/article/details/28448975 大家都是IT从业者,遇到的问题多少与类似. 假设能把这些 ...
 - 记录Python学习中的几个小问题
		
记录Python学习中的几个小问题,和C#\JAVA的习惯都不太一样. 1.Django模板中比较两个值是否相等 错误的做法 <option value="{{group.id}}&q ...
 - 深度学习中的Data Augmentation方法(转)基于keras
		
在深度学习中,当数据量不够大时候,常常采用下面4中方法: 1. 人工增加训练集的大小. 通过平移, 翻转, 加噪声等方法从已有数据中创造出一批"新"的数据.也就是Data Augm ...
 - Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录)
		
Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录) 作者:王可利(Star·星星) 效果图: 代码如下: class Star8 { public static void m ...
 - Java 需要记得、了解的关键词 (Java 学习中的小记录)
		
Java 需要记得.了解的关键词 (Java 学习中的小记录) 作者:王可利(Star·星星) 总结:本次随笔,仅且拿来平时翻阅记忆用
 - Java学习中,常用的命令管理(Java 学习中的小记录)
		
Java学习中,常用的命令管理 作者:王可利(Star·星星) 一.Window中常见的dos命令 在哪里操作dos命令: Win7 ---> 开始 ---->所有程序---& ...
 - Java基础学习中一些词语和语句的使用
		
在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...
 - 有关JAVA基础学习中的集合讨论
		
很高兴能在这里认识大家,我也是刚刚接触后端开发的学习者,相信很多朋友在学习中都会遇到很多头疼的问题,希望我们都能够把问题分享出来,把自己的学习思路整理出来,我们一起探讨一起成长. 今天我 ...
 
随机推荐
- MySQL表结构(含数据类型、字段备注注释)导出成Excel
			
方法一: 1.用的是Navicat Premium,可以换成任意图形化客户端 SELECT COLUMN_NAME 列名, COLUMN_TYPE 数据类型, DATA_TYPE 字段类型, CHAR ...
 - SQL中 decode() 函数介绍
			
decode() 函数的语法: Select decode(columnname,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值) From talbename Where … 其中:c ...
 - BZOJ1607: [Usaco2008 Dec]Patting Heads 轻拍牛头(模拟 调和级数)
			
Time Limit: 3 Sec Memory Limit: 64 MBSubmit: 3031 Solved: 1596[Submit][Status][Discuss] Descriptio ...
 - PostgreSQL数据库的安装
			
1 总体规划 操作系统 CentOS Linux release 7.5.1804 处理器 1 内存 4G 硬盘 38G 主机名称 chenzx IP地址 192.168.56.8 1.1 用户组和用 ...
 - Linux分享笔记:系统状态检测命令小结
			
作为一名合格的运维人员,要能很好地了解Linux服务器,要能熟练查看Linux系统的运行状态.以下是常用到的Linux系统状态检测命令. 1. ifconfig:用于获取网卡配置与网络状态等信息.通常 ...
 - Hadoop(23)-Yarn资源调度器
			
Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序 1. Yarn工作机制 机制详解 第1 ...
 - Python自动化运维——文件与目录差异对比
			
Infi-chu: http://www.cnblogs.com/Infi-chu/ 模块:filecmp 安装:Python版本大于等于2.3默认自带 功能:实现文件.目录.遍历子目录的差异 常用方 ...
 - HyperLedger Fabric 1.4 超级账本简介(5.2)
			
超级账本(Hyperledger)是推动区块链跨行业应用的开源项目的总称,组织成员可以发起新的区块链项目,加入到超级账本项目(Hyperledger)中,但需要遵循Hyperledger的生命周期. ...
 - Using ARR to setup a proxy
			
Install IIS Install ARR 3.0 from WebPI Open IIS management console (inetmgr), select the server node ...
 - javascript 之 为函数设置默认参数值
			
方法一: function example(a,b){ var a = arguments[0] ? arguments[0] : 1;//设置参数a默认为1 var b = arguments[1] ...