Create and Use Session and Application Level Events in ASP.NET
Introduction
Global.asax file is also
known as ASP.NET application file. It provides a way to respond to application
or module level events in one central location. We can use this file to
implement application security, total hits counting, number of users online as
well as other tasks. The Global.asax file exists in the root of the application
directory. Global.assx file is an optional file so if we don’t need then simply
delete it from application and no any other change required. The Global.asax
file is configured so that any direct HTTP request (via URL) is rejected
automatically, so users cannot download or view its contents. The ASP.NET page
framework recognizes automatically any changes that are made to the Global.asax
file. The framework reboots the application, which includes closing all browser
sessions, flushes all state information, and restarts the application domain.
About
Global.asax page
Adding a Global.asax to your
web project is quiet simple. Open Visual Studio 2005 or 2008 > Create a new
website > Go to the Solution Explorer > Add New Item > Global
Application Class > Add.
Now we will have three Application Event Handlers and two Session Event Handlers.
Here is the list of Application Event Handlers:
Now we will have three Application Event Handlers and two Session Event Handlers.
Here is the list of Application Event Handlers:
Sub
Application_Start(ByVal sender As Object, ByVal e As EventArgs)
' Code
that runs on application startup
End Sub
Sub
Application_End(ByVal sender As Object, ByVal e As EventArgs)
' Code
that runs on application shutdown
End Sub
Sub
Application_Error(ByVal sender As Object, ByVal e As EventArgs)
' Code
that runs when an unhandled error occurs
End Sub
Here is the list of Session Event Handlers:
Sub
Session_Start(ByVal sender As Object, ByVal e As EventArgs)
' Code
that runs when a new session is started
End Sub
Sub
Session_End(ByVal sender As Object, ByVal e As EventArgs)
' Code
that runs when a session ends.
' Note:
The Session_End event is raised only when the sessionstate mode
' is set
to InProc in the Web.config file. If session mode is set to StateServer
' or
SQLServer, the event is not raised.
End Sub
Event
Handlers will be used
Application_Start(): It gets
fired when the first resource is requested from the web server and the web
application starts. Application_BeginRequest(): It gets fired when an
application request is received. It's the first event fired for a request,
which is often a page request (URL) that a user enters.
Working
with Global.asax file:
<%@
Application Language="VB" %>
<script
runat="server">
Sub Application_Start(ByVal sender As
Object, ByVal e As EventArgs)
' Code that runs on application startup
Application("TitleOfPage") =
"USER DETAILS STATEMENT"
Application("NumberOfOnlineUsers") = 0
Application("NumberOfUsers")
= 0
End Sub
Sub Application_BeginRequest(ByVal sender
As Object, ByVal e As EventArgs)
Application.Lock()
Application("NumberOfUsers")
=
CType(Application("NumberOfUsers"), Integer) 1
CType(Application("NumberOfUsers"), Integer) 1
Application.UnLock()
End Sub
Sub Application_End(ByVal sender As Object,
ByVal e As EventArgs)
' Code that runs on application
shutdown
End Sub
Sub Application_Error(ByVal sender As
Object, ByVal e As EventArgs)
' Code that runs when an unhandled
error occurs
End Sub
Sub Session_Start(ByVal sender As Object,
ByVal e As EventArgs)
' Code that runs when a new session is
started
Application.Lock()
Application("NumberOfOnlineUsers") =
CType(Application("NumberOfOnlineUsers"), Integer) 1
CType(Application("NumberOfOnlineUsers"), Integer) 1
Application.UnLock()
End Sub
Sub Session_End(ByVal sender As Object,
ByVal e As EventArgs)
' Code that runs when a session ends.
' Note: The Session_End event is raised
only when the sessionstate mode
' is set to InProc in the Web.config
file. If session mode is set to StateServer
' or SQLServer, the event is not
raised.
End Sub
</script>
Working
with Default.aspx file:
<%@
Page Language="VB" AutoEventWireup="false"
CodeFile="Default.aspx.vb" Inherits="_Default" %>
<!DOCTYPE
html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml" >
<head
runat="server">
<title>Create and Use Session and
Application Level Events in ASP.NET</title>
</head>
<body>
<form id="form1"
runat="server">
<div>
<table width="100%">
<tr>
<td
colspan="3">
<asp:Label
ID="Label1" runat="server"
Text="Label" Width="561px" Font-Bold="True" Font-Size="Large" ForeColor="Red"></asp:Label><br />
Text="Label" Width="561px" Font-Bold="True" Font-Size="Large" ForeColor="Red"></asp:Label><br />
<br />
</td>
</tr>
<tr>
<td style="width:
68px">
<asp:Label
ID="Label4" runat="server" Font-Bold="True"
ForeColor="Blue" Text="Number of Online Users"
Width="252px"></asp:Label></td>
<td
colspan="2">
<asp:Label
ID="Label2" runat="server" Text="Label"
Width="410px"></asp:Label></td>
</tr>
<tr>
<td style="width:
68px">
<asp:Label
ID="Label5" runat="server" Font-Bold="True"
ForeColor="Blue" Text="Number of Users Served (Hits)"
Width="395px"></asp:Label></td>
<td colspan="2">
<asp:Label
ID="Label3" runat="server" Text="Label"
Width="411px"></asp:Label></td>
</tr>
</table>
</div>
</form>
</body>
</html>
Working
with Default.aspx.vb file:
Partial
Class _Default
Inherits System.Web.UI.Page
Protected
Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles
Me.Load
Label1.Text =
Application("TitleOfPage")
Label2.Text =
Application("NumberOfOnlineUsers")
Label3.Text =
Application("NumberOfUsers")
End Sub
End Class
Comments
Post a Comment