好贷网好贷款

.net Session原理与在登录中的应用

发布时间:2016-12-3 6:19:08 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了".net Session原理与在登录中的应用",主要涉及到.net Session原理与在登录中的应用方面的内容,对于.net Session原理与在登录中的应用感兴趣的同学可以参考一下。

Session原理: 在服务器端有一个session池,用来存储每个用户提交的session中的数据。 Session有跨页面不跨进程的访问特性,因此对于每个客户端(同一电脑的同一个浏览器)中的session,不能被其它电脑或本机的其它浏览器所访问。 客户端首次与Web服务器建立连接时,服务器为客户端分配一个SessionID作为这个Session的唯一标识,这个SessionID以Cookie的形式保存在客户端,用户每次提交页面时,浏览器都会把这个SessionID包含在HTTP头中提交给服务器,通过这个SessionID从服务器的Session池中得到这个SessionID中的数据。 Session以滚动计时方式存储数据,且通常默认有效期为20分钟,即当访问了一次Session之后有20分钟没有提交操作,那么这个Session就会被服务器自动销毁,在这期间如果有提交操作,则从最近的一次时间开始,重新计时。当要更改有效期时,在Web.Config()中的 <system.web>     <sessionState timeout="20"></sessionState>  <!---设置session的过期时间,时间以分钟为单位--> </system.web〉   Session 校验 页面初始化检查Session :每个要校验的页实现其类 管道Session校验 :在Web.Config( )中进行配置,不用手动将每个页面实现 全局处理程序Global校验 :添加全局处理程序 /// <summary> /// 页面初始化检查Session,在要进行Session校验的页,单继承该类(之后页--extend--该类--extend--System.Web.UI.Page) /// </summary> public class CheckSession2:System.Web.UI.Page { protected override void OnLoad(EventArgs e) { base.OnLoad(e); if (Session["user"] == null) { Response.Redirect("/Index.aspx"); } } } 管道Session校验 /// <summary> /// 实现IHttpModule接口,为AcquireRequestState添加事件 /// </summary> public class DuckCheckSession2:IHttpModule { void IHttpModule.Dispose() { throw new NotImplementedException(); } void IHttpModule.Init(HttpApplication context) { //获取于当前请求相关的会话时发生 context.AcquireRequestState += new EventHandler(context_AcquireRequestState); } void context_AcquireRequestState(object sender, EventArgs e) { HttpApplication application = sender as HttpApplication;//得到HttpApplication HttpContext context = application.Context;//得到请上下文 Uri url = context.Request.Url;//得到请求的URL string url2 = url.AbsolutePath; //请求Admin目录下的文件时,需要进行身份验证,只有管理员才能访问 if (url2.ToLower().StartsWith("/member2")) { if (HttpContext.Current.Session["user"] == null) { HttpContext.Current.Response.Redirect("/Default.aspx"); } } } } 在Web.Config中配置 <system.web> <httpModules> <!-- type: 命名空间名.类名--> <add name="CheckAdminModule" type="BookShop.Web.Common2.DuckCheckSession2"/> </httpModules> </system.web>

上一篇:位运算的性质
下一篇:java 集合框架中间迭代器的使用和实现原理

相关文章

相关评论