Por que o usuário deve estar logado para que a representação funcione?

Por que o usuário deve estar logado para que a representação funcione?

Meu servidor Windows Server 2008 hospeda um aplicativo ASP.net que usa representação. O aplicativo funciona enquanto o usuário representado permanecer conectado ao servidor. No entanto, quando o usuário faz logoff, os clientes não podem mais visualizar as páginas da web. Em vez disso, eles recebem um erro enigmático.

Como posso configurar o servidor para funcionar sem que o usuário representado permaneça conectado? Desde já, obrigado.

Responder1

Encontrei o problema e a solução.

Problema:

O webservice usa um certificado X509Certificate2. Os construtores da classe X509Certificate2 tentam importar o certificado para o perfil de usuário da conta de usuário em que o aplicativo é executado. Muitas vezes, os aplicativos ASP.NET e COM+ representam clientes. Quando isso acontece, eles não carregam os perfis do usuário representado por motivos de desempenho. Portanto, eles não podem acessar o armazenamento de certificados "Usuário" do usuário representado.

O mesmo código funcionará quando executado a partir de um aplicativo interativo ou de um serviço do Windows em execução em uma conta de usuário porque o perfil é carregado quando o usuário está conectado ou o serviço é iniciado.

Solução:

  1. Um administrador na máquina onde o aplicativo ASP.NET/COM+ é executado deve instalar o certificado no armazenamento de certificados da máquina, chamado de armazenamento "Computador Local". Isso deve ser feito quando o aplicativo ASP.NET/COM+ estiver instalado.

  2. O administrador deve definir as permissões na chave privada associada ao certificado para fornecer ao processo ASP.NET e aos usuários representados acesso à chave. Isto é necessário porque somente a conta de usuário que instala o certificado ou a chave privada no armazenamento "Computador Local" pode posteriormente usar a chave privada RSA associada ao certificado. Use WinHttpCertCfg.exe disponível nas ferramentas do Windows Resource Kit (http://msdn2.microsoft.com/en-us/library/aa384088.aspx(http://msdn2.microsoft.com/en-us/library/aa384088.aspx) ) para configurar as permissões.

  3. O código do aplicativo ASP.NET/COM+ deve usar o certificado instalado em vez de tentar instalar um a partir de um arquivo PFX. Faça com que o código localize o certificado instalado usando a classe X509Store.

Verhttp://support.microsoft.com/kb/948154Para maiores informações.

informação relacionada