<<<返回

Session是怎样工作的？
Session其实是利用Cookie进行信息处理的，（参见后面有关Cookies的介绍），当用户首先进行了请求后，服务端就在用户浏览器上创建了一个Cookie，当这个Session结束时，其实就是意味着这个Cookie就过期了。 为这个用户创建的Cookie的名称是ASPSESSIONID。这个Cookie的唯一目的就是为每一个用户提供不同的身份认证。 注：如果你对名字是ASPSESSIONID的COOKIE感到好奇，你可以利用ServerVariables集合的COOKIE Header来接受这个信息，参看下面这个脚本：
<%=Request.ServerVariables(“HTTP COOKIE”) %>
你可以刷新不止一次而显示结果依然不变。如果希望对ServerVariables集合有更多了解，那么请去看第14章。
Session变量自己不会存在用户浏览器上。不过，ASPSESSIONID这个cookie需要使用session变量。server使用ASPSESSIONID cookie来将特定的用户和特定的session信息联系起来。没有cookie的话，Server就不会了解到每一个特定用户在网站中移动的信息。
利用SessionID变量存储ASPSESSIONID cookie和直接对名为ASPSESSIONID的cookie赋值有很大不同。微软利用了一个复杂的数学算法对SessionID进行了加密措施，以防止黑客猜测出SessionID的值并且依据这个获得不该获得的身份或权限。
注：你可以用两种方法屏蔽掉SessionID，一种是将全站进行屏蔽，另外一种是将一个单独Active Server Page进行相应屏蔽。
如果想要将整个站点的Session操作进行屏蔽，你可以使用Internet Service Manager。从Application设置对话框，点击Active Server Pages表并且取消对Enable Session State选项的选择。
你还可以在特定的Active Server Page的首行加入使之屏蔽的语句来进行这种操作。
<% EnableSessionState=False %>
由于Session对象使用了Cookies，那么它的兼容性就受到了限制，一些老的浏览器显然是不行的，新的浏览器象是NetScape4.0也提供了屏蔽Cookie的选项。
这样就出了问题、由于Cookie不能适用于所有浏览器，那么在建站时你就必须注意了，如果你的网站定位于大众通用，就必须考虑各种不同的用户情况。不过现在确实有可以替代的方法，有些取代Cookies来进行身份认证的方法将在后面的章节中进行讨论。
注：当前浏览器，是否发送一个Cookie在URL是区分大小写的,因此，微软提醒你最好使用同样的大小写方式，例如一起使用/WWW/mypage.asp和/www/mypage.asp肯定会使浏览器出错。