Session配置

------------------------------------
Session配置
------------------------------------

在Web.Config文件中
<system.web>
<pages buffer="true"
      enableSessionState="true"
      enableViewState="true"
      enableViewStateMac="true"
      autoEventWireup="true"
      validateRequest="true"/>
</system.web>
可以设置使用/禁用Session.

对Session的配置
1.
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;
Trusted_Connection=yes"
cookieless="false"
timeout="15000"/>
其中timeout设置的是离开时间.
cookieless="false" 设置表示为session是否存放在cookie中,如是为false则表示存放在url中.
2.
当然也可以动态修改离开时间:
Session.TimeOut = 100; //有郊时间持续100分钟
3.
在Global.asax里面设置以下:
Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
        ' 在会话启动时激发
        Session.Timeout = 100
End Sub

---------------------------------
优先级:
---------------------------------
1.最靠近代码的设置是最优先的..IIS最远,machine.config其次,web.config再次,session.timeout是最优先的...

2.一般session主要是针对当前用户使用.相对服务器而言是属于当前Application的孩子.每次的HTTP请求都会产生一个新的sessionID.当用户

退出之后则当前SessionID会消失.你也可以这么理解,Session感觉就好像过客一样.过去了就算了...
Application则是配置了全局服务器端变量,并且只有当服务器重新启动后,该变量才会消失.因为其高效和全局性.一般用做统计,或者对记录全

局人数,频繁使用的数据等等..

---------------------------------
退出用户后,退出框架:
---------------------------------
Response.Write(@"<script language=javascript>parent.location.href = '../Message/LoginError.aspx?id=1';</script>");

Asp和asp.net项目的集成和数据传递
System.Web.HttpUtility.UrlDecode(AL_Cookie.Values.Item("Count"))
Cookies在ASP和ASP.NET下也一样乱码

---------------------------------
生命周期:
---------------------------------
如果浏览器不在指定的超时时间内重新访问应用程序,则自动释放会话数据,造成SESSION变量丢失.
如果由于访问冲突导致进程故障,或者在出现死锁或内存泄露的情况下,服务器进程重启,会话数据也会丢失.

SEssion用于保存每个用户的专用信息.
用法//SESSION["NAME"]="OOOQ";生存期:当其超时或被关闭时将自动释放保存的数据信息.
COOKIE对象用于保存客户浏览器请求服务器页面的请求信息,程序员也可以用它存放非敏感性的用户信息,信息保存的时间可以根据需求设置.如

果没有设置其实效日期,他们仅仅保存在关闭浏览器程序为止.

session:是一对一的关系,每一位链接到此网页使用该变量的浏览者都有自己的session变量,并且彼此之间并不相关,生命周期<始于第一次打开

网页,止于关闭网页;也可自己设置timeout来控件它的生命周期;
cookies:始于网页浏览者"第一次"链接到网页到服务端的网页上,止于网页浏览者关闭处级浏览器窗口或切断于服务器的联机(默认情况下),或

cookies变量失效(已超过设置的"有效时间");

用application对象去存储应用于整个application的变量。这当然会带来内存消耗的代价。在.net中,我们可以用static变量来改善它,采用

static 变量在大多数时候存储的速度会比application对象快.不能代替session,static在一个页面内有效,session在整个站点访问过程都有

效。

----------------------------------
其他几种常用的变量:
----------------------------------
Application是应用程序级变量,如果用到多个用户之间的通信的时候用
Session    是用户变量,一个用户访问多个页面时可以保存数据到另一个页面,只要此用户不注销就可以
ViewState  页面变量,相当于页面全局变量,但是一旦退出当前页面,它就会丢失

用法:
如果有两个人: 甲和已在同学访问一个网站
1.
Sessin["UserID"] = "甲";//  表示只要甲不注销,不论跳到哪个页面,string str = Session["UserID"]都保存初始化时的数据,常用于在:

Page_Load事件中,验证身份
page_Load()
{
if(Session["UserID"] == null || Session["UserID"] == "")
{
  Response.Redirect("登录页面,重新登录");
  }
  else
  {
    呈现出页面
  }
}
2.
Application["x"];
只要赋了值,如: Application["x"]; 则甲和已可以共享到此值,可以用于计数器,记录站点访问量,只要一个用户登录,则Application["x"] +=

1;//加一个数,表示有个新用户刚刚登录
3.
this.ViewState["y"] = "abcde";
则表示在本页面中,this.ViewState["y"] 值可以作为全局变量使用,只要不退出本页面,
包括刷新页面,它都不会丢失

如果是给管理员用,建议用Session
如果是给客户端的用户用,建议用Cookie.

---------------------------------
统计:
---------------------------------
Session.Count;
Page.Cache.Count;
Request.Cookies.Count;

--------------------------------
清除当前Session
Session.Abandon();
--------------------------------

--------------------------------
session失效后跳转
--------------------------------
在Web.Config文件中设置:

<authentication mode="Forms">             
    <forms name=".ASPXUSERDEMO" loginUrl="Login.aspx" protection="All" timeout="30"/>
</authentication>
<authorization>
    <deny users="?"/>
</authorization>
自己要建立一个名称为:login.aspx的页面就OK了.

--------------------------------
session中可以放置各种对象例:
--------------------------------
string[] NewLogin = new string[] {"aaa","bbb"};
Session.Add("userinfo",NewLogin);

string[] NewLogin = (string[])Session["userinfo"];

-----------------------------------
1.首先引用using System.Collections.Specialized;
using System.Collections.Specialized;
2.
StringCollection sour= new StringCollection();
sour.Add("我的才最好!");
sour.Add("哈哈哈,开个玩笑!");
            Session["test"]=sour;
StringCollection sc= (StringCollection)Session["test"];

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值