WebMatrix: Gerenciador para desenvolvimento de sites (WPI 3 Beta)

A Microsoft disponibilizou uma nova versão do Web Platform Installer V3 Beta. Já havia postado sobre a versão 1 e 2 (http://www.marcelosincic.com.br/blog/post/Microsoft-Web-Platform.aspx) e agora temos acréscimo na versão 3 não apenas de aplicações web mas também de aplicações para desenvolvimento.

Agora são distribuídas as versões do Visual Studio Web Developer 2010, SQL Server 2008 R2 e versões recentes das aplicações como BlogEngine, WordPress, Moddle, etc. Porem foram acrescentadas novas aplicações muito interessantes:

WPI-3

  • O Microsoft Azure Tools é um pacote de utilitários que acrescentam ao Visual Studio o suporte a gerenciar e implementar aplicações no Azure, ambiente de cloud da Microsoft
  • Windows Server AppFabric é um servidor que permite hospedar os serviços que utilizam WCF
  • O WebMatrix é um gerenciador de sites web, muito interessante. Não apenas gerenciar páginas e faz a implementação no site, mas inclui relatórios e ferramentas para análise do site. Vou falar um pouco mais do WebMatrix.
  • IIS Express que é superior ao atual Web Server do Visual Studio por ser uma única instancia ao invés das individuais que o VS cria, como a imagem abaixo.
IIS Express

Nota: O WebMatrix não é um editor de páginas, ele apenas cria as páginas vazias sendo necessário o Visual Studio 2010 (pode ser o Express) para editar as páginas e códigos.

A tela inicial abaixo do WebMatrix já mostra bem o que ele faz. Diferente do WebMatrix do ASP 1.0 que era um micro Interdev, este tem tarefas de gerenciamento de arquivos de um site, banco de dados e relatórios do seu site. Note a interface gráfica que está se tornando um padrão nos novos produtos da Microsoft, com a Ribbon e as tarefas separadas por splits na parte de baixo do painel, com detalhamento na parte central da tela.

 

WebMatrix

Nesta segunda tela vemos as opções ao clicar na opção “Site” acima. Note no menu que uma sacada interessante é a opção de executar o site tanto no IE quanto no Firefox, o que vai facilitar para testes de desempenho e compatibilidade em múltiplos browsers. Note também a possibilidade de incluir novos arquivos no site, mas lembre-se da nota anterior de que é necessário clicar no botão “Visual Studio” para editar as páginas e arquivos com os wizard, já que o WebMatrix só suporta modo texto.

WebMatrix-1

Nas tarefas “Databases” temos uma série de ferramentas para manipular um banco de dados embutido no site. Para quem ainda não conhece, este recurso foi introduzindo do Framework 3.x e permite abrir arquivos com extensão mdf diretamente no IIS, tendo as funções do SQL Server totalmente compatíveis. Isso facilitou muito para quem hospeda sites e não tinha a opção de instalar um banco de dados. Com os wizards do WebMatrix é possível criar databases, tabelas, índices, executar queries, etc..

WebMatrix-DB

Algo que me chamou atenção foi a tela de Reports com a opção de gerar um relatório de análise SEO utilizando o Bing. Este recurso é muito importante para o desenvolvedor já ter antes da publicação do sites dicas e um relatório de como o site será visto pelos SEOs (sites de busca) quando for publicado. Isso aumenta muito a eficiência das pesquisas e permitirá ao desenvolvedor fazer as customizações sem conhecer tudo sobre SEO.

WebMatrix-Reports

WebMatrix-Reports-2

É isso ai, para quem quiser baixar e começar a usar as ferramentas vá ao link http://www.microsoft.com/web/webmatrix/download/

FAQ: Uso de e-CPF ou e-CNPJ para autenticação de aplicações

A algum tempo que atualizo e mantenho atualmente no MSDN um documento de como utilizar certificados digitais na autenticação de clientes (http://msdn.microsoft.com/pt-br/library/ee923720.aspx).

Porem, neste artigo abordamos a autenticação utilizando certificados emitidos pelo próprio cliente com uma CA seja no Windows 2003 ou no Windows 2008 (para as diferentes versões do Windows veja o link http://www.marcelosincic.com.br/blog/page/Artigos-e-Apostilas.aspx.

Recebo semanalmente perguntas e dúvidas sobre como utilizar o e-CNPJ e o e-CPF para fazer a autenticação e resolvi fazer este post em forma de FAQ das principais perguntas que recebo.

1. É necessário ter um certificado de autoridades públicas para autenticar e-CPF ou e-CNPJ?

Resposta: É necessário ter um certificado válido para instalar no seu IIS. Nos artigos acima a raiz certificadora (CA) não é válida na internet e a CRL muitas vezes está em um ambiente interno. Esta característica faz com que o browser não reconheça a CA ou não acesse a CRL e rejeite o certificado com a mensagem de erro devida. Como o browser não validou o certificado do servidor, ele não irá solicitar para o cliente o certificado dele.

2. Este certificado tem que ser emitido por uma certificadora vinculada ao ICP-Brasil (SERASA, CertiSign, CEF e outras) para autenticar e-CPF ou e-CNPJ?

Resposta: Teoricamente não, mas é preferencial. O problema de utilizar uma certificadora não vinculada a raiz do ICP-Brasil é que a autoridade não estará na lista de confiança, e mesmo podendo ser adicionada manualmente (veja questões abaixo) em alguns casos pode ocorrer a leitura parcial do certificado.

3. Eu tenho um e-CPF ou e-CNPJ e o meu servidor é certificado pela ICP-Brasil e mesmo assim não solicita o meu certificado. Porque?

Resposta: Você precisa montar a lista de autoridades certificadoras para que o certificado seja aceito e o motivo é que o ICP-Brasil não é um único emissor nem um único CA (veja questões abaixo). Para montar a lista de certificadoras aceitas verifique no documento do MSDN no inicio do post.

4. Alguns cartões ou tokens são aceitos e outros não, o que está acontecendo?

Resposta: O ICP-Brasil apresenta duas características que podem causar isso. A primeira é que a cadeia dos certificados é, por exemplo, “Autoridade Certificadora Brasileira –> Secretaria da Receita Federal (RFB) –> SERASA” e você irá precisar colocar o primeiro nível como “Autoridades Raiz Confiáveis” e as duas seguintes como “Autoridades Intermediarias Confiáveis” (veja como na continuação das perguntas).
O outro problema é que existem duas “Autoridade Certificadora Brasileira” que é o nome apenas e outras com “v1”. Ou seja, cartões e tokens emitidos antes de 2009 utilizam o certificado da primeira versão e os mais atuais da “v1” que é a mais recente. Portanto você precisará instalar os dois como raízes confiáveis.

5. Mesmo colocando os dois “Autoridade Certificadora Brasileira” na lista de confiáveis o token não aparece. Porque?

Resposta: Não é apenas a raiz que tem variações, mas também os certificados intermediários, que podem ser a “Secretaria da Fazenda”, “Receita Federal”, “SERAZA”, “CertiSign”, etc. Você precisa colocar estes como “Autoridades Intermediárias Certificadoras Confiáveis” (como encontrar todas elas veja perguntas abaixo).

6. Como incluo as raízes e intermediárias do ICP-Brasil no meu servidor?

Resposta: Abra o MMC e adicione o snap-in “Certificados” mas note que não “Usuário” e sim “Computador”. Não basta apenas dar duplo clique no arquivo “cer” para incluir, porque neste caso você estaria incluindo no usuário e não na máquina. Após incluir o snap-in clique com o botão direito nos locais e use a opção “Importar”. Veja na imagem abaixo onde deve ser incluído os certificados raízes “Autoridade Certificadora Brasileira” e os intermediários “Serasa”, “Certisign”, “RFB”, etc:

image

 

7. Onde encontro a lista com todos os certificadores e os certificados emitidos por eles?

Resposta: Utilize este endereço: http://www.iti.gov.br/twiki/bin/view/Certificacao/RepositoriodaACRaiz que contem as informações de todos os certificados existentes tanto as duas raízes quanto suas intermediárias. Note que indica quais os tipos de certificados e no caso do ICP-Brasil são A1 e A3.

8. No Internet Explorer e no Chrome funcionou logo na primeira vez e no Firefox não, o que acontece?

Resposta: O IE e o Chrome já possuem o ICP-Brasil na lista de autoridades, já o Firefox até hoje não implementou (http://br.mozdev.org/drupal/2008/07/icp-brasil-deve-ser-adicionado-ao-firefox) e é necessário fazer manualmente. No post da Mozilla ou no do ITI na pergunta anterior siga as instruções, lembrando que deve ser feito no cliente. Porem, note que o aplicativo do leitor do cartão normalmente tem a opção para fazer essa inclusão de forma automática.

9. Como leio os dados do certificado alem do “subjet” citado no artigo do MSDN?

Resposta: Utilizando o código abaixo é possivel ler os dados em uma aplicação Windows Form, basta converter o “Request.Certificate” que consta no artigo para o tipo X509Certificate2:

System.Security.Cryptography.X509Certificates.X509Store Lista =
    new System.Security.Cryptography.X509Certificates.X509Store();
Lista.Open(System.Security.Cryptography.X509Certificates.OpenFlags.IncludeArchived);
for (int Contador = 0; Contador < Lista.Certificates.Count; Contador++)
{
    System.Security.Cryptography.X509Certificates.X509Certificate2 Certificado = Lista.Certificates[Contador];
    MessageBox.Show(Certificado.ToString());
    string Dados = Certificado.Subject;
    listBox1.Items.Add(Dados);
    if (Dados.IndexOf("e-CPF") > 0 || Dados.IndexOf("e-CNPJ") > 0)
    {
        Dados = Dados.Remove(0, Dados.IndexOf(":") + 1);
        Dados = Dados.Remove(Dados.IndexOf("OU=") - 2);
        listBox1.Items.Add("e-CPF/e-CNPJ = " + Dados);
    }
}

 

Espero ter respondido as principais perguntas, e caso surjam novas vou atualizando este post.