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

1

Meu servidor do Windows Server 2008 hospeda um aplicativo ASP.net que usa representação. O aplicativo funciona desde que o usuário que está sendo representado permaneça conectado ao servidor. No entanto, quando o usuário faz logoff, os clientes não podem mais exibir as páginas da web. Eles recebem um erro enigmático.

Como posso configurar o servidor para funcionar sem que o usuário representado permaneça conectado? Agradecemos antecipadamente.

    
por Tarzan 04.06.2010 / 23:53

1 resposta

1

Eu encontrei o problema e a solução.

Problema:

O webservice usa um certificado X509Certificate2. Os construtores de 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 o fazem, eles não carregam os perfis de usuário para o usuário representado por motivos de desempenho. Portanto, eles não podem acessar o armazenamento de certificados "Usuário" para o 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 o acesso à chave. Isso é necessário porque somente a conta de usuário que instala o certificado ou a chave privada no armazenamento "Computador Local" pode usar posteriormente a chave privada RSA associada ao certificado. Use WinHttpCertCfg.exe disponível nas ferramentas do Windows Resource Kit ( link ( link )) 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. Ter o código localizar o certificado instalado usando a classe X509Store.

Consulte o link para obter mais informações.

    
por 08.06.2010 / 21:40