Desenvolvimento - C#
Explorando o IIS 7.0
O IIS (Internet Information Services) 7.0 completa 10 anos onde se consolida como o principal servidor web da atualidade sendo distribuído com o Windows Server 2008 e Windows Vista SP1.
por Ramon DurãesIntrodução
O IIS (Internet Information Services) 7.0 completa 10 anos onde se consolida
como o principal servidor web da atualidade sendo distribuído com o Windows
Server 2008 e Windows Vista SP1. Para os desenvolvedores ASP.NET o IIS é o
grande parceiro responsável pela distribuição das aplicações na Web. Desde a
versão 6.0 foram feitos grandes investimentos em segurança tornando a infra
estrutura muito segurara reduzindo a zero o número de hotfix relacionados .
Novidades
Com o IIS 7.0 muitas mudanças foram feitas em seu núcleo com a criação de uma
estrutura modular permitindo limitar a área de superfície só rodando os pacotes
necessários a sua aplicação e abrindo a possibilidade para que você possa
ampliar os recursos originais adicionando novas funcionalidades. Você tem a
disposição mais de 44 módulos que podem ser adicionados ou removidos a qualquer
momento.
Antes no IIS 6.0 as requisições processavam de forma separada no IIS e no
ASP.NET pois o comportava-se como uma espécie de plugin conforme a figura 01
dificultando a utilização dos poderosos recursos do ASP.NET para outras
aplicações. Agora com o IIS 7.0 o ASP.NET está integrado e já responde
diretamente pelas requisições conforme a figura 02 possibilitando a
interceptação das requisições trabalhando de forma integrada.
Figura 01 – Estrutura do IIS 6.0
Figura 02 – Estrutura do IIS 7.0
O IIS agora conta também com vários caminhos para que possamos efetuar sua
configuração desde o novo console até usando código .net conforme os exemplos:
- IIS Manager
- Scripting
- WMI
- Microsoft.Web.Administration (.NET)
- AppCmd.exe
Instalando o IIS no
Windows Vista
Para instalar o IIS você precisar ir ao painel de controle, programas, Ativar
ou desativar recursos do Windows ou ir ao iniciar e digitar: optionalfeatures
conforme a figura 03.
Figura 03 – Ativar ou desativar recursos do Windows.
Escolhendo uma das opções citadas acima vai carregar a figura 04 onde
você deve escolher a opção Serviços de Informações da Internet e ativar a
ferramenta de gerenciamento e os serviços da World Wide Web.
Figura 04 – Instalando IIS.
Você precisar ativar o suporte ao ASP.NET dentro da opção Recursos para
Desenvolvimento de Aplicativos conforme a figura 05.
Figura 05 – Instalando o ASP.NET.
Gerenciador de Serviços de
Informações da Internet (IIS)
O novo console de gerenciamento foi também completamente
reestruturado com uma interface mais amigável que também suporta novos
componentes desenvolvidos em .NET. Para uma visão geral do mesmo confira
agora a figura 06.
Figura 06 – Gerenciando o IIS.
Inserindo
certificado SSL (Secure Sockets Layer)
Uma característica bastante interessante no IIS 7.0 é a
possibilidade de se criar no mesmo certificados de teste para testar seu site
usando SSL. A mesma interface foi bastante simplificada para a implementação e
configuração dos certificados conforme a figura 07.
Figura 07 – Criando um certificado SSL.
Clique no ícone certificados de servidor e depois na aba ações você vai ter um
conjunto de opções que vão desde importação de um certificado, solicitação de
um e a opção que usaremos no momento que é criar um certificado para testes
conforme a figura 08.
Figura 08 – Criando certificando SSL pra teste
Após definir um nome teremos o mesmo criado conforme a figura 09.
Figura 09 – Certificados de Servidor.
Agora chegou o momento de utilizar o seu certificado. Para isso clique no seu
web site que para esse exemplo será o Default Web Site e depois escolha em
Ações a opção Ligações conforme a figura 10.
Figura 10 – Definindo certificado para um site.
Ao carregar clique na opção adicionar onde deverá escolher um certificado
dentre os cadastrados conforme a figura 11.
Figura 11 – Definindo o certificado ‘Artigo’ para o Default Web Site.
Agora que você definiu seu certificado de teste para esse web site é só testar pelo internet Explorer usando o HTTPS. Vale lembrar que esse certificado é apenas para testes e o IE exibe um alerta quando você estive usando o mesmo, bastando ignorar e continuar conforme a figura 12.
Figura 12 – Acessando o site usando SSL.
Mais
recursos para todas as aplicações
Agora você pode usar os recursos do ASP.NET como autenticação,
autorização, cachê para todas as aplicações. As informações de configuração do
servidor ficam salvas dentro do já conhecido arquivo web.config conforme a figura
13 facilitando a sua distribuição entre os servidores web farms.
Figura 13 – Salvando configurações do IIS no web.config.
Explorando potencial do IIS
e .NET integrado.
Para demonstrar o potencial do novo IIS vamos usar um modulo
construído para impedir uma situação comum hoje em dia que é a utilização de
imagens de terceiros hospedas em outro hosting e que traz muitos problemas de
trafego . Imagina que você viu alguma imagem em um site e deseja usa em seu
blog. Você copiar a referencia da mesma e cola. Toda vez que alguém abrir seu
blog vai ver a figura mas a mesma está hospedada em outro local resultando em
consumo de largura de banda.
Agora nós podemos usar o novo IIS integrado com um modulo em .NET para
gerenciar o carregamento dessas figuras retornando por exemplo um erro para
quem tentar fazer esse hotlink ou uma outra figura de alerta.
O Mike
Volodarsky criou um exemplo muito interessante que pode ser baixado para
utilização.
Ao descompactar o arquivo você vai ter uma DLL com o nome de LeechGuard.dll que
deve ser copiada para a pasta \Bin da sua aplicação. Depois é só configurar o
Web.Config na pasta de sua aplicação para ativar o modulo conforme a figura
14.
Figura 14 – Ativando modulo para proteger imagens.
Feito isso é só rodar nossa aplicação que conforme a configuração qualquer
solicitação de arquivo gif / jpg que seja feita por uma url externa que não a
do localhost ele vai retornar outra figura que para o nosso caso utilizaremos a
figura pirate.gif.
Conforme a figura 15 a nossa aplicação apenas tem as figuras, o
web.config e a pasta Bin com a DLL.
Figura 15 – Protegendo imagens usando o IIS 7.0
Agora é só acessar pelo internet Explorer a sua aplicação que para o nosso caso
está no IIS na pasta Origem ficando com a seguinte url http://localhost/origem/figura.jpg
conforme a figura 16.
Figura 16 – Acessando uma figura
Agora quem tentar acessar essa mesma figura colocando link em seu site vai
ter como resultado o exemplo que simulamos na figura 17.
Figura 17 – Impedindo a cópia da figura
Conforme você observou com o novo IIS o potencial de
funcionalidades que você pode criar é realmente gigantesco e vai depender de
sua criatividade usando .NET.
Para facilitar esse exemplo eu adicionei um novo identificador de host no
Windows para usarmos no lugar da url LocalHost e simular um terceiro acessando o
site.
O processo é muito simples, basta editar o arquivo C:\Windows\System32\drivers\etc\hosts
adicionando a entrada ‘demo’ conforme a figura 18.
Figura 18 – Editando arquivo hosts
Considerações finais
O IIS 7.0 oferece para o desenvolvedor web uma nova plataforma totalmente reestruturada
e adaptável as suas necessidades consolidando o mesmo como principal plataforma
para hospedagem de aplicações web. Com a criação de novos módulos você pode sempre
que necessário ampliar os recursos e criar novas funcionalidades conforme as
necessidades de negócio.
Referências:
http://dotnetwizard.net/vista-stuff/how-to-run-aspnet-v11-on-iis7-use-visual-studio-2003-on-vista/
http://learn.iis.net/page.aspx/121/iis-7-modules-overview
http://weblogs.asp.net/scottgu/archive/2006/09/19/Tip_2F00_Trick_3A00_-Using-IIS7-on-Vista-with-VS-2005.aspx
http://learn.iis.net/page.aspx/365/installing-necessary-iis7-components-on-windows-vista/
http://msdn.microsoft.com/pt-br/magazine/cc163453.aspx