“aspnet_regiis -pa” não funciona

1

Eu uso o Protected Configuration para armazenar dados confidenciais criptografados no arquivo Web.config do nosso aplicativo asp.net.
Eu segui as etapas em Passo a passo: Criando e exportando um contêiner de chaves RSA para gerar e exportar um chave privada.
Eu segui as etapas em Passo a passo: Criptografando as informações de configuração usando a configuração protegida para criptografar uma seção do Web.config usando essa chave.

Meu problema é que não consigo usar essa chave no ambiente de teste, devido ao comportamento estranho do comando aspnet_regiis .

Eu tenho conseguido fazer com que a coisa funcione no computador de um colega que executa o Windows 8. O comando aspnet_regiis -pi (importando a chave privada) e o aspnet_regiis -pa (concedendo acesso a a chave privada) funcionou sem problemas.

No ambiente de teste que executa o Windows 7, consegui importar com êxito a chave privada para o contêiner de chave usando aspnet_regiis -pi <KeyContainer> <KeyFile> .
Mas quando eu tento aspnet_regiis -pa <KeyContainer> <account-name> , o comando apenas lista suas opções de linha de comando. Não indica falha ou sucesso.

Todos esses ambientes usam o .Net Framework v4.

Eu consultei essa questão , mas a diferença é que consegui executar aspnet_regiis -pi <KeyContainer> <KeyFile> . Também não fez diferença executar aspnet_regiis -lk como é sugerido lá.

A pergunta é: como posso conceder acesso ao aplicativo ao conteúdo do contêiner de chave, para que ele possa descriptografar o Web.config? Por que o aspnet_regi está agindo como se a opção "-pa" não existisse, em vez de me dar uma mensagem "Success" ou "Failed"?

    
por S.L. Barth 11.02.2013 / 17:08

1 resposta

1

Acontece que estávamos usando a versão errada do aspnet_regiis.

Nós chamamos aspnet_regiis do diretório %Windows%\Microsoft.Net\Framework\v4.0.30319 .
Ao chamá-lo de %Windows%\Microsoft.Net\Framework64\v4.0.30319 , a versão de 64 bits, o comando relatou sucesso.

Ainda assim, uma mensagem de erro teria sido útil ...

EDIT:
Parece que o contêiner de chave não está disponível, a menos que você tenha um perfil de usuário. Quando, em outro servidor, permitimos que a conta que usava "Logon as a Service" para acessar o contêiner de chave, ele falhava, mesmo que estivesse no grupo Administrador. Quando logamos fisicamente, criando um perfil de usuário, o contêiner de chave tornou-se disponível.

    
por 14.02.2013 / 10:47