Otimizando a Inicialização de aplicações .NET - Búfalo Informática
Dica No : 1030
Titulo: Otimizando a Inicialização de aplicações .NET
Já escrevi antes sobre CAS, vale a pena dar uma lida no artigo em http://www.bufaloinfo.com.br/artigos/artigo0910.asp
Um "detalhe" que passa frequentemente despercebido em relação ao CAS é que um dos mecanismos utilizados para manter a segurança das aplicações é o certificado digital do publisher, ou seja, do criador da aplicação. Podemos criar regras de segurança do CAS para as aplicações criadas por determinadas empresas.
Quando uma aplicação assinada é inicializada, o CAS precisa montar o que é chamado de "evidência" da aplicação utilizando o certificado digital do publisher.
O certificado digital do publisher, por sua vez, foi criado por uma autoridade de certificação (chamada tecnicamente de root authority). As entidades de certificação precisam ser confiáveis para que o certificado e a aplicação seja. Sua máquina precisa estar com as autoridades de certificação cadastradas como confiáveis.
Se o publisher utiliza uma das autoridades públicas e muito conhecidas, tal como verisign, é bem provável que o certificado da autoridade certificadora já esteja instalado em sua máquina.
Porém muitos publishers utilizam autoridades certificadoras próprias. A própria Microsoft é uma que tem seu próprio servidor de certificação.
Assim sendo, quando você inicia uma aplicação cujo certificado digital foi emitido por uma entidade certificadora que não está cadastrada na sua máquina, o .NET vai a internet buscar informações sobre esta entidade certificadora. Essa ida a internet pode criar um atraso na inicialização de aplicações .NET, especialmente se sua máquina não tiver conexão com a internet.
Um exemplo disso é a mensagem exibida no processo de instalação do SQL Server, que alerta justamente sobre esse possível atraso na inicialização de aplicações.
Existem 2 soluções : Você pode instalar o certificado da autoridade certificadora na sua máquina, o que é a melhor solução (o da Microsoft por exemplo fica em http://crl.microsoft.com/pki/crl/products/MicrosoftRootAuthority.crl) ou você pode desabilitar a checagem da autoridade certificadora no CAS.
Neste 2o caso, você perde a capacidade de criar regras de segurança de acordo com o fabricante das aplicações. Caso deseje implementar este 2o caso, deve adicionar o seguinte no seu machine.config :
Cuidado que a tag configuration certamente já está lá, acrescente a tag runtime caso ela ainda não esteja.