Domínio Fake, Alias de domínio e Binding de domínios no IISExpress

Já precisou criar uns domínios fake para teste em sua máquina de desenvolvimento? Ou melhor criar alias de domínios de teste. Na verdade o nome correto é Binding Domain, ou ligações de domínios, vamos ver como é simples criar nossos binding para domínios.

A motivação deste post: Aqui na empresa estamos criando um sistema para gerenciamento de prestações de contas para Câmaras Municipais, ai resolvemos criar um único sistema que basta trocar o template baseado no domínio que solicita, ou seja, baseado no domínio que é usado fornecemos os dados e o template do mesmo.

Criando o projeto para teste do Binding de Dominio

Para este exemplo foi criado um projeto em ASP .Net MVC chamado “MeusAliasDeUrl”, como template Basic, e adicionado um controller Home e uma View Index, como mostra o código abaixo.

HomeController.cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
using System.Web.Mvc;
using MeusAliasDeUrl.Models;
 
namespace MeusAliasDeUrl.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            ViewBag.Host = GetHost.Pegar();
            return View();
        }
    }
}

Index.cshtml

1
2
3
4
@ {
    ViewBag.Title = "Exemplo de Bindig de Dominio";
}
<h2>@ ViewBag.Host</h2>

Também foi criado um classe com o método que retorna qual domínio está solicitando a requisição, como mostra a classe abaixo.

GetHost.cs

1
2
3
4
5
6
7
8
9
10
11
12
13
using System.Web;
 
namespace MeusAliasDeUrl.Models
{
    public class GetHost
    {
        public static string Pegar()
        {
            var url = HttpContext.Current.Request.Url.Host;   
            return url;
        }
    }
}

Configurando o Binding no IISExpress

Para configurar o alias para o nossos domínios fakes basta abrir o arquivo “applicationhost.config” que fica na pasta “Documents/IISExpress/config” do seu usuário do Windows.
No meu caso o caminho completo você pode ver abaixo.

1
c:\Users\Cleyton\Documents\IISExpress\config\applicationhost.config

Uma vez aberto o arquivo “applicationhost.config” basta procurar o nome do seu projeto dentro do arquivo, neste caso o projeto chama “MeusAliasDeUrl”, você vai encontrar as configurações deste seu projeto, procure a tag “binding” baseado no atributo já existente para “localhost”, crie quantos mais forem necessários, no meu caso, eu criei mais 3 domínios fakes.

1
2
3
4
5
6
7
8
9
10
11
<site name="MeusAliasDeUrl" id="55">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
         <virtualDirectory path="/" physicalPath="C:\Users\Cleyton\Documents\Visual Studio 2012\Projects\MeusAliasDeUrl\MeusAliasDeUrl" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:16529:localhost" />
        <binding protocol="http" bindingInformation="*:16529:dominiofake.com" />
        <binding protocol="http" bindingInformation="*:16529:camaraaltoparaiso.com" />
        <binding protocol="http" bindingInformation="*:16529:camaraariquemes.com" />
    </bindings>
</site>

Veja como é simples! Lembre-se de manter a porta padrão que o IISExpress gerou para o seu site, no meu caso foi a porta 16529, é logico que caso queira simular sua aplicação para que ela responda por outra porta basta trocar o numero da porta!

Configurando o Host da máquina local

Agora precisamos apontar nossos bindings de domínios para o ip da nossa máquina local, para isso precisamos editar o arquivos “c:\Windows\System32\Drivers\etc\hosts” lembre-se de abrir o editor como administrador, caso contrário você não conseguirá salvar as alterações neste arquivo.
Veja como ficou o meu arquivo Hosts.

1
2
3
4
5
...
127.0.0.1       dominiofake.com
127.0.0.1       camaraaltoparaiso.com
127.0.0.1       camaraariquemes.com
...

Testando os bidings de domínios

Agora basta rodar nossa aplicação em ASP .Net MVC, lembre-se de executar o Visual Studio como Administrador, caso contrário ele não terá permissão para acessar os nosso bindings.

Ao executar o Visual Studio ira chamar por padrão a url “http://localhost:16529″, basta digitar os outros domínios fakes no browser para testar a nossa aplicação.

dominios

Espero que tenham gostado desta dica ela é bastante útil quando você quer testar como sua aplicação vai se comportar com um domínio real, ou se quiser enganar algum serviço para teste, como por exemplo, ao testar aplicativos que se autenticam via Twitter por exemplo, ele não aceita o domínio localhost, ai você pode usar esta técnica de binding de domínios para testar na sua máquina a autenticação do twitter sem ter que publicar sua aplicação primeiro.
Até a próxima pessoal.

[Post originalmente publicado em http://cleytonferrari.com/dominio-fake-alias-de-dominio-e-binding-de-dominios-no-iisexpress em 24/02/2013]

Comentarios

comentarios