求ASP.NET中session的用法 怎样设置session中内容保存时间,session 的具体用法以及它与cookie,Application的区别! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Session.Timeout = 600; //时间Session.Content["aa"] = 要保存的值;取出值 = Session.Content["aa"] .Tostring();Session是保存在服务器端的。cookie是保存在客户端的。Application是全局的,所有用户共享。 在IIS的设置了设。session是对此用户登录后到退出前,有效;APPLICATION是整个应用范围,所有用户有效;COOKIE是当前页面 1.application对象 application用于保存所有用户的公共的数据信息,假如使用application对象,一个需要考虑的问题是任何写操作都要在 application_onstart事件(global.asax)中完成.尽管使用application.lock和 applicaiton.unlock方法来避免写操作的同步,但是它串行化了对application对象的请求,当网站访问量大的时候会产生严重的性 能瓶颈.因此最好不要用此对象保存大的数据集合. 2.session对象 session用于保存每个用户的专用信息.她的生存期是用户持续请求时间再加上一段时间(一般是20分钟左右).session中的信息保存在web服务器内容中,保存的数据量可大可小.当session超时或被关闭时将自动释放保存的数据信息.由于用户停止使用应用 程序后它仍然在内存中保持一段时间,因此使用session对象使保存用户数据的方法效率很低.对于小量的数据,使用session对象保存还是一个不错 的选择.使用session对象保存信息的代码如下://存放信息session["username"]="zhouhuan";//读取数据string username=session["username"].tostring(); 3.cookie对象 cookie用于保存客户浏览器请求服务器页面的请求信息,程序员也可以用它存放非敏感性的用户信息,信息保存的时间可以根据需要设置.假如没有设置 cookie失效日期,它们仅保存到关闭浏览器程序为止.假如将cookie对象的expires属性设置为minvalue,则表示cookie永远不 会过期.cookie存储的数据量很受限制,大多数浏览器支持最大容量为4096,因此不要用来保存数据集及其他大量数据.由于并非所有的浏览器都支持 cookie,并且数据信息是以明文文本的形式保存在客户端的计算机中,因此最好不要保存敏感的,未加密的数据,否则会影响网站的安全性.使用 cookie对象保存的代码如下://存放信息response.cookies["userid"].value="0001";//读取信息string userid=response.cookies["userid"].value;设置session时间:Session.Timeout=24*60 或者 webconfig里设置timeout ASP.NET中Session的用法之一:使用Session设定权限Session简介:简单来说就是服务器给客户端的一个编号。当一台WWW服务器运行时,可能有若干个用户浏览正在运正在这台服务器上的网站。当每个用户首次与这台WWW服务器建立连接时,他就与这个服务器建立了一个Session,同时服务器会自动为其分配一个SessionID,用以标识这个用户的唯一身份。这个SessionID是由WWW服务器随机产生的一个由24个字符组成的字符串。Session的初次使用:protected void Page_Load(object sender, EventArgs e){//这是页面的初始化 if (!Page.IsPostBack) {//判断是否为初次执行 if (Object.Equals(Session["AdminName"], null)) {//判断在Session["AdminName"]是否存在值 Response.Redirect("ErrorPage.aspx", true); } else {//要是存在则记录下这个人的用户名 Name.Text = Session["AdminName"].ToString(); } }}ASP.NET中Session的用法之二:进行页面传值在页面之间传递信息有许多方式:第一:可以使用QueryString第二:可以使用Session第三:Server.Transfer这三种传值方式都有利有弊,下面我以我的经验给大家讲解一下首先:QueryStringQueryString是一种非常简单的传值方式,其缺点就是会把要传递的值显示在浏览器的地址栏中,并且此方法不能够传递对象。如果你想传递一个安全性不是那么重要或者是一个简单的数值时。使用此方式最好不过。下面通过一个小例子来说明一下1.创建一个Web页面,叫SendMessage.aspx2.在页面内添加两个TextBox,叫TxtName,TxtEmail,与一个Button,叫Submit protected void Submit_Click(object sender, EventArgs e) { String Url = "ReceiveMessage.aspx?Name=" + TxtName.Text + "&Email=" + TxtEmail.Text; Response.Redirect(Url); }3.再创建一个接收信息页面,叫ReceiveMessage.aspx4.在页面内添加两个Label,叫LbName,LbEmail protected void Page_Load(object sender, EventArgs e) {//使用Request来接收由上个页面传递过来的值,分别显示在页面上 LbName.Text = Request.QueryString["Name"]; LbEmail.Text = Request.QueryString["Email"]; }再次:使用Session变量使用Session变量传值是一种最常见的方式了,此种方式不仅可以把值传递到下一个页面,还可以交叉传递到多个页面,直至把Session变量的值Remove后,才消失下面举例说明1.创建一个页面,叫SendSession2.在页面内添加两个TextBox,叫TxtName,TxtEmail,添加一个Button,叫Submit protected void Submit_Click(object sender, EventArgs e) {//可以使用Session的Add方法 Session["Name"] = TxtName.Text; //可以使用Session.Add("Name",TxtName.Text); Session["Email"] = TxtEmail.Text; //可以使用Session.Add("Email",TxtEmail.Text); Response.Redirect("ReceiveMessage.aspx"); }3.再创建一个页面,叫ReceiveMessage.aspx4.在页面内添加两个Label,叫LbName,LbEmail protected void Page_Load(object sender, EventArgs e) { LbName.Text = Session["Name"].ToString(); LbEmail.Text = Session["Email"].ToString(); Session["Name"].Remove(); Session["Email"].Remove(); //使用结束要清除Session中的值 }这是使用Session传递数值,此方式耗费服务器的资源,尽量少使用再次:使用Server.Transfer这种传递方式有点复杂,但也可以是一种值传递方式下面举例说明一下:1.创建一个页面,叫SendMessage.aspx2.在页面内添加两个TextBox,叫TxtName,TxtEmail,添加一个Button,叫Submit protected void Submit_Click(object sender, EventArgs e) { Server.Transfer("ReceiveMessage.aspx"); }再添加一个属性 public String Name { Get { return TxtName.Text; } } public String Email { Get { return TxtEmail.Text; } }3.再创建一个页面,叫ReceiveMessage.aspx4.在页面放两个Label,叫LbName,LbEmail protected void Page_Load(object sender, EventArgs e) { //创建原始窗体的实例SendMessage wf1 //获得实例化的句柄 wf1=(SendMessage)Context.Handler; Label1.Text=wf1.Name; Label2.Text=wf1.EMail; } IIS设置里:网站->主目录->配置->选项 简单说application对象是公共的Session是私人的 延长保存时间 去web.config里改: <sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="改这里.以分钟为单位" />ASP.NET保存信息总结(Application、Session、Cookie、ViewState和Cache等) http://www.cnblogs.com/zc22/archive/2010/03/11/1683734.html 还是不要用Session了 影响速度~! 用户体验模块 nettiers中事务处理 删除提示问题,有点不太一样 如何在fileupload控件的textbox写值? asp如何利用objectDataSource控件绑定业务逻辑层?谁有操作步骤? 问一个浏览定位的问题 高分求教 datagrid模板列的问题 请高手帮忙 问一下,思归是做什么的,谁给他发薪! 关于网站移值时数据库连接的问题 高分提问:关于下拉菜单及DataView等! ASPxGridView 的取值问题? response.redirect(文件)下载文件没反应
取出值 = Session.Content["aa"] .Tostring();Session是保存在服务器端的。
cookie是保存在客户端的。
Application是全局的,所有用户共享。
session是对此用户登录后到退出前,有效;APPLICATION是整个应用范围,所有用户有效;COOKIE是当前页面
application用于保存所有用户的公共的数据信息,假如使用application对象,一个需要考虑的问题是任何写操作都要在 application_onstart事件(global.asax)中完成.尽管使用application.lock和 applicaiton.unlock方法来避免写操作的同步,但是它串行化了对application对象的请求,当网站访问量大的时候会产生严重的性 能瓶颈.因此最好不要用此对象保存大的数据集合.
2.session对象
session用于保存每个用户的专用信息.她的生存期是用户持续请求时间再加上一段时间(一般是20分钟左右).s
ession中的信息保存在web服务器内容中,保存的数据量可大可小.当session超时或被关闭时将自动释放保存的数据信息.由于用户停止使用应用 程序后它仍然在内存中保持一段时间,因此使用session对象使保存用户数据的方法效率很低.对于小量的数据,使用session对象保存还是一个不错 的选择.使用session对象保存信息的代码如下:
//存放信息
session["username"]="zhouhuan";
//读取数据
string username=session["username"].tostring(); 3.cookie对象
cookie用于保存客户浏览器请求服务器页面的请求信息,程序员也可以用它存放非敏感性的用户信息,信息保存的时间可以根据需要设置.假如没有设置 cookie失效日期,它们仅保存到关闭浏览器程序为止.假如将cookie对象的expires属性设置为minvalue,则表示cookie永远不 会过期.cookie存储的数据量很受限制,大多数浏览器支持最大容量为4096,因此不要用来保存数据集及其他大量数据.由于并非所有的浏览器都支持 cookie,并且数据信息是以明文文本的形式保存在客户端的计算机中,因此最好不要保存敏感的,未加密的数据,否则会影响网站的安全性.使用 cookie对象保存的代码如下:
//存放信息
response.cookies["userid"].value="0001";
//读取信息
string userid=response.cookies["userid"].value;设置session时间:
Session.Timeout=24*60 或者 webconfig里设置timeout
Session简介:
简单来说就是服务器给客户端的一个编号。当一台WWW服务器运行时,可能有若干个用户浏览正在运正在这台服务器上的网站。当每个用户首次与这台WWW服务器建立连接时,他就与这个服务器建立了一个Session,同时服务器会自动为其分配一个SessionID,用以标识这个用户的唯一身份。这个SessionID是由WWW服务器随机产生的一个由24个字符组成的字符串。
Session的初次使用:
protected void Page_Load(object sender, EventArgs e)
{//这是页面的初始化
if (!Page.IsPostBack)
{//判断是否为初次执行
if (Object.Equals(Session["AdminName"], null))
{//判断在Session["AdminName"]是否存在值
Response.Redirect("ErrorPage.aspx", true);
}
else
{//要是存在则记录下这个人的用户名
Name.Text = Session["AdminName"].ToString();
}
}
}
ASP.NET中Session的用法之二:进行页面传值
在页面之间传递信息有许多方式:
第一:可以使用QueryString
第二:可以使用Session
第三:Server.Transfer
这三种传值方式都有利有弊,下面我以我的经验给大家讲解一下
首先:QueryString
QueryString是一种非常简单的传值方式,其缺点就是会把要传递的值显示在浏览器的地址栏中,并且此方法不能够传递对象。如果你想传递一个安全性不是那么重要或者是一个简单的数值时。使用此方式最好不过。
下面通过一个小例子来说明一下
1.创建一个Web页面,叫SendMessage.aspx
2.在页面内添加两个TextBox,叫TxtName,TxtEmail,与一个Button,叫Submit
protected void Submit_Click(object sender, EventArgs e)
{
String Url = "ReceiveMessage.aspx?Name=" +
TxtName.Text + "&Email=" + TxtEmail.Text;
Response.Redirect(Url);
}
3.再创建一个接收信息页面,叫ReceiveMessage.aspx
4.在页面内添加两个Label,叫LbName,LbEmail
protected void Page_Load(object sender, EventArgs e)
{//使用Request来接收由上个页面传递过来的值,分别显示在页面上
LbName.Text = Request.QueryString["Name"];
LbEmail.Text = Request.QueryString["Email"];
}
再次:使用Session变量
使用Session变量传值是一种最常见的方式了,此种方式不仅可以把值传递到下一个页面,还可以交叉传递到多个页面,直至把Session变量的值Remove后,才消失
下面举例说明
1.创建一个页面,叫SendSession
2.在页面内添加两个TextBox,叫TxtName,TxtEmail,添加一个Button,叫Submit
protected void Submit_Click(object sender, EventArgs e)
{//可以使用Session的Add方法
Session["Name"] = TxtName.Text;
//可以使用Session.Add("Name",TxtName.Text);
Session["Email"] = TxtEmail.Text;
//可以使用Session.Add("Email",TxtEmail.Text);
Response.Redirect("ReceiveMessage.aspx");
}
3.再创建一个页面,叫ReceiveMessage.aspx
4.在页面内添加两个Label,叫LbName,LbEmail
protected void Page_Load(object sender, EventArgs e)
{
LbName.Text = Session["Name"].ToString();
LbEmail.Text = Session["Email"].ToString();
Session["Name"].Remove();
Session["Email"].Remove();
//使用结束要清除Session中的值
}
这是使用Session传递数值,此方式耗费服务器的资源,尽量少使用
再次:使用Server.Transfer
这种传递方式有点复杂,但也可以是一种值传递方式
下面举例说明一下:
1.创建一个页面,叫SendMessage.aspx
2.在页面内添加两个TextBox,叫TxtName,TxtEmail,添加一个Button,叫Submit
protected void Submit_Click(object sender, EventArgs e)
{
Server.Transfer("ReceiveMessage.aspx");
}
再添加一个属性
public String Name
{
Get
{
return TxtName.Text;
}
}
public String Email
{
Get
{
return TxtEmail.Text;
}
}
3.再创建一个页面,叫ReceiveMessage.aspx
4.在页面放两个Label,叫LbName,LbEmail
protected void Page_Load(object sender, EventArgs e)
{
//创建原始窗体的实例SendMessage wf1
//获得实例化的句柄
wf1=(SendMessage)Context.Handler;
Label1.Text=wf1.Name;
Label2.Text=wf1.EMail;
}
延长保存时间
去web.config里改: <sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="改这里.以分钟为单位"
/>ASP.NET保存信息总结(Application、Session、Cookie、ViewState和Cache等) http://www.cnblogs.com/zc22/archive/2010/03/11/1683734.html