Session_OnStart Event

当服务器创建一个新会话时,就会发生Session_OnStart事件。服务器在执行请求的网页之前先处理该脚本。一个好的实践方式是利用Session_OnStart事件设置任何会话范围的变量,因为将在访问任何网页之前设置变量。所有的内建对象(Application ObjectObjectContext ObjectRequest ObjectResponse ObjectServer ObjectSession Object)都是可用的,可以在Session_OnStart事件脚本中引用它们。

<SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server>
Sub Session_OnStart
. . . 
End Sub
</SCRIPT>

参数

ScriptLanguage
指定编写事件脚本所使用的脚本语言。它可以是任何受支持的脚本语言,比如说VBScript或JScript。如果不止一个事件使用同样的脚本语言,可以把它们组合在一个<SCRIPT>标签集下。

备注

你必须注意:跟在Response.Redirect方法调用后面的任何Session_OnStart事件脚本都不会被执行。出于这个原因,你必须在你的事件脚本的最后调用Redirect方法,如下面的示例所示。

<SCRIPT Language= &quot;VBScript&quot; RUNAT=Server>
 Sub Session_OnStart
  'Session initialization script.
  Response.Redirect "http://server/app/StartHere.asp"
 End sub
</SCRIPT>

在上面的示例中,Response.Redirect方法在会话初始化脚本过程中隐藏了任何显示到客户端的文本。

示例代码

虽然如果Session_OnStart事件包含了对Response.Redirect 方法或Response.End方法的调用,Session对象会保持下去,但是服务器会停止处理Global.asa文件中的脚本、停止处理触发Session_OnStart事件的文件。

你可以在 Session_OnStart事件上调用Response.Redirect方法,举个例子,为了确保用户始终是从一个特定的网页开始一个会话。当用户最初打开这个应用程序时,服务器为该用户创建了一个会话并处理了Session_OnStart事件脚本。你可以在这事件中包含脚本以检查用户打开的网页是否是起始页,并且,如果不是起始页,就通过调用Response.Redirect方法,把用户重定向到起始页,如下面的示例所示。

Note:
该示例只对支持cookie的浏览器起作用。因为不支持cookie的浏览器不会返回SessionIDcookie,浏览器会在用户每次请求一个网页的时候创建一个新会话。因此,对于每个请求,服务器都会处理Session_OnStart脚本并把用户重定向到起始页。如果使用下面的脚本,建议你把一个提示放在你的起始页,以提醒用户本网站需要浏览器允许使用cookie。
<SCRIPT RUNAT=Server Language= &quot;VBScript&quot;>
Sub Session_OnStart
  'Make sure that new users start on the correct
  'page of the ASP application.

  'Replace the value given to startPage below
  'with the virtual path to your application's
  'start page.

  startPage = "/MyApp/StartHere.asp"
  currentPage = Request.ServerVariables("SCRIPT_NAME")

  'Do a case-insensitive comparison, and if they
  'don't match, send the user to the start page.

  If strcomp(currentPage,startPage,1) then
    Response.Redirect(startPage)
  End If
End Sub
</SCRIPT>

必备条件

Client: Requires Windows XP Professional, Windows 2000 Professional, or Windows NT Workstation 4.0.

Server: Requires Windows Server 2003, Windows 2000 Server, or Windows NT Server 4.0.

Product: IIS

如果你喜欢这篇文章,敬请给站长打赏↑

除特别注明外,本站所有文章均为本站站长原译,转载请注明出处。