首页 > 其他 > 详细

014-Session服务器状态保持

时间:2017-01-17 00:14:12      阅读:195      评论:0      收藏:0      [点我收藏+]

技术分享

开始并为Session赋值:
Session[“uName”]=“CNYaoMing”;
取值:
string strName = Session[“uName”].ToString();
销毁(取消/退出):
Session.Abandon();//销毁服务器端的Session对象 Session.Clear();//清空服务端的Session对象里的键值对,Session对象并没有从Session池里销毁。类似于集合的Clear(),把集合中的内容清空,集合本身还在。

禁用Cookie后使用Session

在WebConfig文件中配置:
<system.web>
<compilation debug="false" targetFramework="4.0" />
<sessionState cookieless="AutoDetect"></sessionState>
</system.web>

<!--配置禁用cookie,使用url来保持Session-->
<sessionState cookieless="true">
</sessionState>

<!--配置自己的SessionID的键-->
<sessionState cookieless="false" cookieName="MyAsp_NetSessionID">
</sessionState>

-》Session

《1》每个浏览器在第一次访问服务器时,都会由服务器创建一个Session对象
《2》在创建Session对象时,都会生成一个唯一的编号
《3》在创建Session对象时,会向浏览器中写一个Cookie,值就是Session对象的编号Session_Id
-》Session对象是HttpSessionState类型,是一个键值对集合对象
主要属性:TimeOut,SessionId,Count
主要方法:Clear(),Abandon()
-》示例1:跨页面共享信息
查看报文,了解存储方式
-》关于SessionId属性:表示会话的标识
如果使用过Session,则客户端会以SessionId为键在Cookie中存储信息,每次请求时,这个信息都会在请求头的Cookie中被提交到服务器,服务器会认为这是一次会话
如果未使用过Session,客户端不会存储会话信息,请求头中没有关于Session的Cookie信息,则认为这是一次新的请求,会生成一个新的SessionId
-》大多数情况下,session依赖于cookie
如果cookie被禁用,则session也就不能用了
session的编号被存储到cookie中
-》缺陷:会造成服务器端压力过大等问题,推荐去session化而采用分布式缓存
-》说明:默认在ashx中是不能使用session的
接口IRequiresSessionState:并没有实现任何功能,只是告诉Application在走到第七个事件时,为一般处理程序启用session功能

SessionWrite.aspx

 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SessionWrite.aspx.cs" Inherits="t4_State.SessionWrite" %>
 2 
 3 <!DOCTYPE html>
 4 
 5 <html xmlns="http://www.w3.org/1999/xhtml">
 6 <head runat="server">
 7     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 8     <title></title>
 9 </head>
10 <body>
11     <form id="form1" runat="server">
12         <div>
13             <%=Session.SessionID %>
14             <hr />
15             <a href="SessionRead.aspx">读Session</a>
16         </div>
17     </form>
18 </body>
19 </html>
1     public partial class SessionWrite : System.Web.UI.Page
2     {
3         protected void Page_Load(object sender, EventArgs e)
4         {
5             Session["xlb"] = "小龙包";
6         }
7     }

SessionRead.aspx

 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SessionRead.aspx.cs" Inherits="t4_State.SessionRead" %>
 2 
 3 <!DOCTYPE html>
 4 
 5 <html xmlns="http://www.w3.org/1999/xhtml">
 6 <head runat="server">
 7     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 8     <title></title>
 9 </head>
10 <body>
11     <form id="form1" runat="server">
12         <div>
13             <%=Session["xlb"] %>
14         </div>
15     </form>
16 </body>
17 </html>

 

014-Session服务器状态保持

原文:http://www.cnblogs.com/ninghongkun/p/6291252.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!