Http状态的传递和保存 之 ASP.NET内置Session
2014-02-17 23:27
375 查看
Session是存放在服务器端的。
登录页面:
跳转页面:
但实际上Session的原理也是在客户端存储一个Cookie,
然后根据这个Cookie查询服务器端存储的值。
就跟前一篇自己实现服务器端Cookie的原理是一样的。
Session是依赖于客户端Cookie的。
借助于Cookie机制,可以让我们在服务器端存储数据,这就是Session的原理。
如下图:
将一个值写入到Session,就会在客户端存储一个名称为ASP.NET_SessionId的Cookie。
客户端浏览器在请求服务器时,也会把这一个名称为ASP.NET_SessionId的Cookie发送到服务器端,
服务器端就会去内存中查找这个Cookie对应的值。
Session有自动销毁机制,如果一段时间内浏览器没有和服务器发生任何的交互,
则Session会定时销毁。这也就是为什么一段时间不操作页面,系统会自动退出的原因。
可以 通过Session.Timeout设置Session超时范围。
一般处理程序中使用Session,必须实现System.Web.SessionState.IRequiresSessionState接口。
登录页面:
public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { // 从客户端请求中获取用户名和密码 string strUserName = Request["username"]; string strPwd = Request["password"]; if (!string.IsNullOrEmpty(strUserName) && !string.IsNullOrEmpty(strPwd)) { LoginInfo lInfo = new LoginInfo(strUserName, strPwd); // 将值写入到Session。 Session.Add("Session_lInfo", lInfo); Response.Redirect("PostForm.aspx"); } } }
跳转页面:
public partial class PostForm : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { // 从Session中获取值。 object obj = Session["Session_lInfo"]; if (obj != null) { // 获取到Session对应的值 LoginInfo lInfo = (LoginInfo)obj; Response.Write("您的登录名是:" + lInfo.UserName + "登录密码:" + lInfo.Password); } else { Response.Redirect("Default.aspx"); } } }
但实际上Session的原理也是在客户端存储一个Cookie,
然后根据这个Cookie查询服务器端存储的值。
就跟前一篇自己实现服务器端Cookie的原理是一样的。
Session是依赖于客户端Cookie的。
借助于Cookie机制,可以让我们在服务器端存储数据,这就是Session的原理。
如下图:
将一个值写入到Session,就会在客户端存储一个名称为ASP.NET_SessionId的Cookie。
客户端浏览器在请求服务器时,也会把这一个名称为ASP.NET_SessionId的Cookie发送到服务器端,
服务器端就会去内存中查找这个Cookie对应的值。
Session有自动销毁机制,如果一段时间内浏览器没有和服务器发生任何的交互,
则Session会定时销毁。这也就是为什么一段时间不操作页面,系统会自动退出的原因。
可以 通过Session.Timeout设置Session超时范围。
一般处理程序中使用Session,必须实现System.Web.SessionState.IRequiresSessionState接口。
相关文章推荐
- [保存]C# 使用HttpWebRequest提交ASP.NET表单并保持Session和Cookie
- asp.net 使用 StateServer 持久保存 Session 会话状态 !
- ASP.NET,保存信息的内置对象,如Application,Session,Cookie,Viewstate和Cache等
- 从ASP.NET 会话状态谈IReadOnlySessionState,IHttpSessionState,IRequiresSessionState
- asp.net中使用IHttpModule时,获取Session报错:会话状态在此上下文中不可用(转自:http://bbs.gimoo.net/thread/172722-1.html)
- asp.net 状态的传递和保存
- ASP.NET 状态的传递和保存
- ASP.NET 状态的传递和保存
- asp.net 状态的传递和保存
- ASP.NET中Session的状态保持方式浅议
- ASP.NET中实现页面间的参数传递 QueryString/Application/Session/Cookie
- ASP.NET 使用mode=”InProc”方式保存Session老是丢失,无奈改成StateServer 模式。
- [ASP.net教程]ASP.NET保存信息总结(Application、Session、Cookie、ViewState和Cache等)
- ASP.NET会话(Session)保存模式
- ASP.NET会话(Session)保存模式
- asp.net网站安全之————iHttpModule判断当前页面session是否为空(1)
- 创建和配置ASP.NET Session状态数据库
- ASP.NET 状态管理(cookie、Session)
- asp.net保存用户登录状态
- ASP.NET将Session保存到数据库中