当前位置:首页 > 网络编程 > WEB编程 > ASP.net > asp+中的session 的使用和原理() 不需要cookie也可以使用session

asp+中的session 的使用和原理() 不需要cookie也可以使用session

点击次数:24 次 发布日期:2008-11-26 23:36:42 作者:源代码网
源代码网推荐 /*
源代码网推荐豆腐制作 都是精品
源代码网推荐http://www.asp888.net 豆腐技术站
源代码网推荐如转载 请保留版权信息
源代码网推荐*/
源代码网推荐session 的 管理,我们传统的asp 程序其实是一种 dead 的session 联结,系统其实在我们的客户端书
源代码网推荐写了一个Cookie,当我们把我们浏览器的 安全设置中的 Cookie 设置成 Prompt 的时候,当我们访问一个
源代码网推荐有Session 的页面的时候,就会出现一个是否允许Cookie 的提示,当设置成为 不允许 Cookie 的时候,我们
源代码网推荐的Session 总是不能成功.例如:

<%
源代码网推荐Session("username")="豆腐"
源代码网推荐Session("URL")="http://www.asp888.net"
源代码网推荐%>

在ASp.Net 的环境中,Session 被完全的重新进行了定义,由于豆腐现在的ASp.Net 的环境是PDC 版本的,
源代码网推荐所以,没有对Beta1 版本进行Demo,我在这里如果涉及到 Beta1 的内容,都是仅仅是材料上介绍的,没有经过
源代码网推荐豆腐的测试

其实,对于一些不愿意深究的同志们,豆腐 说:其实 asp.net 的使用方法和asp 的使用方法完全相同,甚至
源代码网推荐更为简单,因为 根据豆腐 的观察,我们根本不用继续 去考虑 客户端 的 cookie 选项 的状态,因为
源代码网推荐不管客户端的设置如何,session都可以顺利的传递

下面我们就对 asp.net 的 session 机制进行一些简单的深入了解,限于技术,我有的问题也不是很清楚,
源代码网推荐所以欢迎大家一同来探讨 这个 文章

在PDC 版本中,我们打开 %systemroot%complus(version)config.web 文件,我们找到 sessionstate
源代码网推荐可以看到以前的内容:
源代码网推荐<sessionstate
源代码网推荐inproc="true"
源代码网推荐usesqlserver="false"
源代码网推荐cookieless="false"
源代码网推荐timeout="20"
源代码网推荐server="localhost"
源代码网推荐port="42424"
源代码网推荐/>

当 inproc 为True 的时候,asp.net 将采取一种称为 in-process 的机制,将Session 的数据保存在这一台服务器上,
源代码网推荐如果inproc 和 usesqlserver 同时为 false ,则采取一种 out process 的机制,将session 存储在 一台 专门用来
源代码网推荐保存session 的服务器上,这样就可以解决当访问 一个站点的 不同主机的时候,session 的共享,这个以前在 asp 中
源代码网推荐绝对是不可能的.
源代码网推荐在 Beta1 的版本上 config.web 改变了很多,我们简单的看一下:
源代码网推荐<!-- sessionstate attributes:
源代码网推荐mode = "inproc" | "sqlserver" | "stateserver"
源代码网推荐cookieless = "true" | "false"
源代码网推荐timeout = <session timeout in minutes, a whole number greater than 0>
源代码网推荐sqlconnectionstring = <acceptable values for SQLConnection.ConnectionString,
源代码网推荐only used when mode="sqlserver">
源代码网推荐server = <server name, only used when mode="stateserver">
源代码网推荐port = <port number, only used when mode="stateserver">
源代码网推荐-->
源代码网推荐关于 config.web 文件的session 部分我们就先说到这里,下面我们来看看 cookieless 的问题:
源代码网推荐这个Cookieless 不是我们平常理解的是否在 客户端 保存Cookie 根据豆腐的观察,ASP.net 的session
源代码网推荐是不会在 浏览器客户端生成任何的cookie的
源代码网推荐我们首先把 cookieless 设置成为 false 的时候,我们来看看这个程序
源代码网推荐<%@ Page Language="VB" %>
源代码网推荐<%Session("name")="豆腐"%>
源代码网推荐<%=Session("name")%>
源代码网推荐程序执行结束后,我们没有从浏览器得到任何的 提示,虽然我们也使用到了Session
源代码网推荐当我们 把 cookieless 设置成为 true 以后,再次运行这个程序,我们发现 程序仍然是
源代码网推荐正确的执行,但是浏览器的地址栏发生了一些变化,我们以前是
源代码网推荐http://host/testsession.aspx 现在变成了 http://host/(包含有很多字符串的内容)/testsession.aspx
源代码网推荐豆腐估计这是 因为 这个session 甚至在 服务器上也没有 生成Cookie 的原因,只好用 (包含有很多字符串的内容)的
源代码网推荐内容来保存Session的内容了

当我们将 inproc 和 usesqlserver 都设置成为 false 表示我们将使用 out process 这个时候,我们就要指定
源代码网推荐server 的name 这个server 就是同意保存 session 的 服务器,我们需要在这个 服务器上 将asp state 的服务启动

当我们需要使用 sql server 的时候,我们必须填写 sql server 的连接字符串,这样 session 就会被保存到
源代码网推荐sql server 的一个database ,当然这个database 是要生成的,,不过在 PDC 版本中,我没有找到这个database 的安装文件
源代码网推荐所以,关于 sql server 的这个部分 我就 无能为力了,都怪 豆腐 没有挺 开心 的话,安装了个 PDC 的版本,现在想起来 后悔呀:(

通过这些的学习,我们是否对asp.net 的session 机制有了进一步的了解了呢?


源代码网推荐作者:豆腐(原创)


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华