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: 17717 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: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
<%@ 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
}
void Session_End(object sender, EventArgs e)
{
// 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.
}
</script>
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: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
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: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
<%@ 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>
<form id="form1" runat="server">
<asp:Button ID="Button1" runat="server" Text="Button"
onclick="Button1_Click" />
<asp:Label ID="Label1" runat="server"></asp:Label>
</form>
</body>
</html>
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: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
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){
// vamos recuperar e exibir a mensagem colocada no
// Application state
Label1.Text = Application["mensagem"].ToString();
}
}
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 |





