在写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(学习中总结的)的更多相关文章

  1. 卷积在深度学习中的作用(转自http://timdettmers.com/2015/03/26/convolution-deep-learning/)

    卷积可能是现在深入学习中最重要的概念.卷积网络和卷积网络将深度学习推向了几乎所有机器学习任务的最前沿.但是,卷积如此强大呢?它是如何工作的?在这篇博客文章中,我将解释卷积并将其与其他概念联系起来,以帮 ...

  2. 作为一名IT从业者,你在工作和学习中,遇到哪些问题

    版权声明:襄阳雷哥的版权声明 https://blog.csdn.net/FansUnion/article/details/28448975 大家都是IT从业者,遇到的问题多少与类似. 假设能把这些 ...

  3. 记录Python学习中的几个小问题

    记录Python学习中的几个小问题,和C#\JAVA的习惯都不太一样. 1.Django模板中比较两个值是否相等 错误的做法 <option value="{{group.id}}&q ...

  4. 深度学习中的Data Augmentation方法(转)基于keras

    在深度学习中,当数据量不够大时候,常常采用下面4中方法: 1. 人工增加训练集的大小. 通过平移, 翻转, 加噪声等方法从已有数据中创造出一批"新"的数据.也就是Data Augm ...

  5. Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录)

    Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录) 作者:王可利(Star·星星) 效果图: 代码如下: class Star8 { public static void m ...

  6. Java 需要记得、了解的关键词 (Java 学习中的小记录)

    Java 需要记得.了解的关键词 (Java 学习中的小记录)     作者:王可利(Star·星星) 总结:本次随笔,仅且拿来平时翻阅记忆用

  7. Java学习中,常用的命令管理(Java 学习中的小记录)

    Java学习中,常用的命令管理      作者:王可利(Star·星星) 一.Window中常见的dos命令 在哪里操作dos命令: Win7 ---> 开始  ---->所有程序---& ...

  8. Java基础学习中一些词语和语句的使用

    在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...

  9. 有关JAVA基础学习中的集合讨论

        很高兴能在这里认识大家,我也是刚刚接触后端开发的学习者,相信很多朋友在学习中都会遇到很多头疼的问题,希望我们都能够把问题分享出来,把自己的学习思路整理出来,我们一起探讨一起成长.    今天我 ...

随机推荐

  1. chromium之ThreadLocalStorage

    看看头文件怎么用 // Wrapper for thread local storage. This class doesn't do much except provide // an API fo ...

  2. poj_2773_Happy 2006

    Two positive integers are said to be relatively prime to each other if the Great Common Divisor (GCD ...

  3. 使用nginx对spring boot项目进行代理

    摘要:使用nginx对spring boot项目进行反向代理,并且使用轮询均衡负载策略 均衡负载与集群 集群和均衡都涉及到多个机器提供的服务的问题 不同点是,集群是互相通信.协同的的多个服务,服务之前 ...

  4. JavaScript--动态添加元素

    在网页中,使用JavaScript动态创建元素的方式有三种: 1.document.write() 2.Element.innerHTML 3.document.createElement() 在上述 ...

  5. PHP学习day1

    PHP 变量规则: 变量以 $ 符号开头,其后是变量的名称 变量名称必须以字母或下划线开头 变量名称不能以数字开头 变量名称只能包含字母数字字符和下划线(A-z.0-9 以及 _) 变量名称对大小写敏 ...

  6. WebSocket协议 8 问

    WebSocket是一种比较新的协议,它是伴随着html5规范而生的,虽然还比较年轻,但大多主流浏览器都已经支持.它使用方面.应用广泛,已经渗透到前后端开发的各种场景中. 对http一问一答中二式流程 ...

  7. Java处理中文乱码问题

    package servlet; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.ser ...

  8. [转]ThinkPHP5 隐藏index.php问题

    ThinkPHP5 隐藏index.php问题 Apache,修改.htaccess文件 ----------------------------------------------------- R ...

  9. x-pack本地安装方式

    一.首先下载本地安装包,我使用的ELK是5.6.1版本: https://artifacts.elastic.co/downloads 二.进入到elasticsearch/bin(所有节点)和kib ...

  10. STM32(7)——通用定时器PWM输出

    1.TIMER输出PWM基本概念         脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种 ...