' ' DotNetNukeŽ - http://www.dotnetnuke.com ' Copyright (c) 2002-2009 ' by DotNetNuke Corporation ' ' Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated ' documentation files (the "Software"), to deal in the Software without restriction, including without limitation ' the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and ' to permit persons to whom the Software is furnished to do so, subject to the following conditions: ' ' The above copyright notice and this permission notice shall be included in all copies or substantial portions ' of the Software. ' ' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED ' TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ' THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF ' CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER ' DEALINGS IN THE SOFTWARE. ' Imports System Imports DotNetNuke.ComponentModel Imports DotNetNuke.Common.Utilities Imports System.Web Namespace DotNetNuke.Common ''' ----------------------------------------------------------------------------- ''' Project : DotNetNuke ''' Class : Global ''' ''' ----------------------------------------------------------------------------- ''' ''' ''' ''' ''' ''' ''' [sun1] 1/18/2004 Created ''' ''' ----------------------------------------------------------------------------- Public Class [Global] Inherits System.Web.HttpApplication #Region "Application Event Handlers" ''' ----------------------------------------------------------------------------- ''' ''' Application_Start ''' Executes on the first web request into the portal application, ''' when a new DLL is deployed, or when web.config is modified. ''' ''' ''' ''' ''' - global variable initialization ''' ''' ''' ''' ----------------------------------------------------------------------------- Private Sub Application_Start(ByVal Sender As Object, ByVal E As EventArgs) If Config.GetSetting("ServerName") = "" Then ServerName = Server.MachineName Else ServerName = Config.GetSetting("ServerName") End If ComponentFactory.Container = New SimpleContainer() 'Install most Providers as Singleton LifeStyle ComponentFactory.InstallComponents(New ProviderInstaller("data", GetType(DotNetNuke.Data.DataProvider))) ComponentFactory.InstallComponents(New ProviderInstaller("caching", GetType(Services.Cache.CachingProvider))) ComponentFactory.InstallComponents(New ProviderInstaller("logging", GetType(Services.Log.EventLog.LoggingProvider))) ComponentFactory.InstallComponents(New ProviderInstaller("scheduling", GetType(Services.Scheduling.SchedulingProvider))) ComponentFactory.InstallComponents(New ProviderInstaller("searchIndex", GetType(Services.Search.IndexingProvider))) ComponentFactory.InstallComponents(New ProviderInstaller("searchDataStore", GetType(Services.Search.SearchDataStoreProvider))) ComponentFactory.InstallComponents(New ProviderInstaller("friendlyUrl", GetType(Services.Url.FriendlyUrl.FriendlyUrlProvider))) ComponentFactory.InstallComponents(New ProviderInstaller("members", GetType(DotNetNuke.Security.Membership.MembershipProvider))) ComponentFactory.InstallComponents(New ProviderInstaller("roles", GetType(DotNetNuke.Security.Roles.RoleProvider))) ComponentFactory.InstallComponents(New ProviderInstaller("profiles", GetType(DotNetNuke.Security.Profile.ProfileProvider))) ComponentFactory.InstallComponents(New ProviderInstaller("permissions", GetType(DotNetNuke.Security.Permissions.PermissionProvider))) ComponentFactory.InstallComponents(New ProviderInstaller("outputCaching", GetType(DotNetNuke.Services.OutputCache.OutputCachingProvider))) ComponentFactory.InstallComponents(New ProviderInstaller("moduleCaching", GetType(DotNetNuke.Services.ModuleCache.ModuleCachingProvider))) Dim provider As DotNetNuke.Security.Permissions.PermissionProvider = DotNetNuke.ComponentModel.ComponentFactory.GetComponent(Of DotNetNuke.Security.Permissions.PermissionProvider)() If provider Is Nothing Then ComponentFactory.RegisterComponentInstance(Of DotNetNuke.Security.Permissions.PermissionProvider)(New DotNetNuke.Security.Permissions.PermissionProvider()) End If 'Install Navigation and Html Providers as NewInstance Lifestyle (ie a new instance is generated each time the type is requested, as there are often multiple instances on the page) ComponentFactory.InstallComponents(New ProviderInstaller("htmlEditor", GetType(Modules.HTMLEditorProvider.HtmlEditorProvider), ComponentLifeStyleType.Transient)) ComponentFactory.InstallComponents(New ProviderInstaller("navigationControl", GetType(Modules.NavigationProvider.NavigationProvider), ComponentLifeStyleType.Transient)) End Sub ''' ----------------------------------------------------------------------------- ''' ''' Application_End ''' Executes when the Application times out ''' ''' ''' ''' ''' ''' ''' ''' ----------------------------------------------------------------------------- Private Sub Application_End(ByVal Sender As Object, ByVal E As EventArgs) ' log APPLICATION_END event Initialize.LogEnd() ' stop scheduled jobs Initialize.StopScheduler() End Sub #End Region Private Sub Global_BeginRequest(ByVal sender As Object, ByVal e As EventArgs) Handles Me.BeginRequest Dim app As HttpApplication = CType(sender, HttpApplication) Dim Request As HttpRequest = app.Request If Request.Url.LocalPath.ToLower.EndsWith("scriptresource.axd") _ OrElse Request.Url.LocalPath.ToLower.EndsWith("webresource.axd") _ OrElse Request.Url.LocalPath.ToLower.EndsWith("gif") _ OrElse Request.Url.LocalPath.ToLower.EndsWith("jpg") _ OrElse Request.Url.LocalPath.ToLower.EndsWith("css") _ OrElse Request.Url.LocalPath.ToLower.EndsWith("js") Then Exit Sub End If ' all of the logic which was previously in Application_Start was moved to Init() in order to support IIS7 integrated pipeline mode ( which no longer provides access to HTTP context within Application_Start ) Initialize.Init(app) 'run schedule if in Request mode Initialize.RunSchedule(Request) End Sub End Class End Namespace