Você está aqui: ASP.NET ::: Dicas & Truques ::: Global.asax |
O que é e como usar o arquivo Global.asax em suas aplicações ASP.NETQuantidade de visualizações: 17459 vezes |
O arquivo Global.asax, também chamado de arquivo de aplicação ASP.NET (ASP.NET application file) é um arquivo opcional que contém código a ser executado em resposta aos eventos à nível de aplicação ou sessão. Tais eventos são disparados pelo ASP.NET ou por módulos HTTP. O arquivo Global.asax deve ser colocado no diretório raiz da aplicação ASP.NET. Em tempo de execução este arquivo é analisado e compilado em uma classe dinamicamente gerada e derivada da classe base HttpApplication. Além disso, o ASP.NET é configurado de forma a recusar qualquer requisição de URL diretamente para este arquivo, ou seja, usuários externos não conseguem efetuar download ou visualizar o código contido em um arquivo Global.asax. Vamos então criar nosso primeiro arquivo Global.asax? Basta seguir os passos abaixo: a) Se estiver usando o Visual Studio (com seu projeto ASP.NET já aberto) vá em File -> New File. Na janela de diálogo Add New Item você deverá selecionar o item "Global Application Class". Clique o botão Add e o arquivo Global.asax será criado no diretório raiz da aplicação (para verificar sua existência veja a relação de arquivos no Solution Explorer). c) Se quiser criar o arquivo Global.asax "na mão mesmo", abra o Bloco de Notas e cole o código abaixo. Em seguida salve-o com o nome "Global.asax" na raiz da aplicação: <%@ Application Language="C#" %> <script runat="server"> void Application_Start(object sender, EventArgs e) { // Code that runs on application startup } void Application_End(object sender, EventArgs e) { // Code that runs on application shutdown } void Application_Error(object sender, EventArgs e) { // Code that runs when an unhandled error occurs } void Session_Start(object sender, EventArgs e) { // Code that runs when a new session is started Notamos no arquivo Global.asax que ele contém marcadores para quase uma dezena de métodos relacionados à aplicação e sessão. Veja uma breve descrição de cada um: Application_Init - O evento Application_Init é disparado quando uma aplicação ASP.NET é inicializada pela primeira vez. Application_Start - O evento Application_Start é disparado quando a aplicação ASP.NET é iniciada pela primeira vez. Session_Start - O evento Session_Start é disparado quando uma nova sessão é criada e acessada pela primeira vez. Este evento é geralmente usado quando queremos inicializar alguma lógica de sessão. Application_BeginRequest - O evento Application_BeginRequest é disparado cada vez que um nova requisição é efetuada. Application_EndRequest - O evento Application_EndRequest é disparado cada vez que a aplicação finaliza o processamento da requisição. Application_AuthenticateRequest - O evento Application_AuthenticateRequest indica que uma requisição está pronta para ser autenticada. Se estivermos usando Forms Authentication, este evento é um bom lugar para verificarmos os papéis e permissões do usuário. Application_Error - O evento Application_Error é disparado quando um erro não gerenciado ocorre na aplicação. Session_End - O evento Session_End é disparado quando uma sessão do usuário finalizada ou é expirada. Application_End - O evento Application_End é disparado quando a aplicação ASP.NET é finalizada. Geralmente o usamos para efetuar alguma lógica de limpeza. Vamos ver agora como podemos usar o arquivo Global.asax para guardar alguma informação no estado da aplicação (Application state). Para isso usaremos o evento Application_Start. Assim, abra seu arquivo Global.asax e modifique este evento para a versão mostrada a seguir: void Application_Start(object sender, EventArgs e) { Application["mensagem"] = "Já estou pronta para trabalhar!"; Veja que aqui nós simplesmente adicionamos uma nova entrada no Application state chamada mensagem e com o valor "Já estou pronta para trabalhar!". Agora vá até a página Default.aspx e modifique-a para o código abaixo: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Debug="true" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title>Estudos ASP.NET</title> </head> <body> Aqui nós temos um botão <asp:Button> e um rótulo <asp:Label>. Ao clicarmos no botão o valor da entrada no Application state será exibido no rótulo. Veja a implementação do evento Click do botão no arquivo de code-behind Default.aspx.cs: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Button1_Click(object sender, EventArgs e){ Execute a aplicação e veja o resultado. Quando a aplicação for iniciada uma entrada ""mensagem"" será adicionada ao Application state e, no clique do botão, o valor desta entrada é recuperado e exibido no <asp:Label>. |
![]() |
Veja mais Dicas e truques de ASP.NET |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |