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 para 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
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
@ { 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
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.
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.
<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.
... 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.
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.