Pergunta

Nós (nosso parceiro realmente) recentemente mudou algumas de DNS para um web viveiro site, temos, então, que as duas servidor de produção têm round-robin de DNS alternar entre elas.Antes de isso mudar, nós realmente não tenho problemas com WebResource.axd ficheiros.Desde a mudança, quando nós tocamos ao vivo URL pública, recebemos um erro:

CryptographicException

Preenchimento é inválido e não pode ser removido.

Quando batemos a servidores específicos, eles carga de multa.Eu pesquisei o problema e parece, pois eles são a partilha de bens entre dois servidores, precisamos ter uma consistente machineKey no web.config para cada servidor para criptografar e descriptografar de forma consistente entre os dois.Minhas perguntas são:

  1. Posso gerar um machineKey através de uma ferramenta no servidor, ou que eu preciso para escrever o código para fazer isso?
  2. Eu só precisa adicionar o machineKey para o web.config em cada servidor ou você acha que eu vou precisar fazer mais nada para fazer a dois servidores trabalham juntos?(Tanto web.config's não têm uma machineKey)
Foi útil?

Solução

Isto deve responder:

Como:Configurar MachineKey em ASP.NET 2.0 - Implantação de Farm da Web Considerações

Implantação De Farm Da Web Considerações

Se você implantar o aplicativo em um Web farm, você deve garantir que o arquivos de configuração em cada servidor de compartilhar o mesmo valor para validationKey e decryptionKey, que são utilizados para a criação de algoritmos hash e decodificação, respectivamente.Isso é necessário porque você não pode garantir o servidor que irá lidar com pedidos sucessivos.

Com gerado manualmente os valores de chave, as definições devem ser semelhante ao exemplo a seguir.

<machineKey  
validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7
               AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"       

decryptionKey="ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F"
validation="SHA1"
decryption="AES"
/>

Se você quiser isolar o aplicativo a partir de outros aplicativos no mesmo server, coloque-o na Web.arquivo de configuração para cada aplicação em cada servidor no farm.Certifique-se de que você usar separado valores-chave para cada aplicação, mas duplicados de cada aplicação chaves em todos os servidores no farm.

Em suma, para definir a chave de máquina, consulte o seguinte link:A configuração de uma Chave de Máquina - Pomar Documentação.

A configuração da Chave da Máquina Usando o Gerenciador do IIS

Se você tem acesso ao console de gerenciamento do IIS para o servidor onde Pomar é instalado, ele é a maneira mais fácil de set-up de uma máquina de chave.

Iniciar o console de gerenciamento e, em seguida, seleccione o web site.Abra o máquina de chave de configuração: The IIS web site configuration panel

A chave da máquina painel de controlo tem as seguintes configurações:

The machine key configuration panel

Desmarque a opção "gerar Automaticamente em tempo de execução" para a validação chave e a chave de descriptografia.

Clique em "Gerar Chaves" na coluna "Ações" no lado direito do painel.

Clique Em "Aplicar".

e adicione a seguinte linha para o web.config arquivo em todos os webservers sob system.web tag se ele não existir.

<machineKey  
    validationKey="21F0SAMPLEKEY9C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7
                   AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"           
    decryptionKey="ABAASAMPLEKEY56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F"
    validation="SHA1"
    decryption="AES"
/>

Por favor, certifique-se de que você tem um backup permanente de máquina e chaves web.config arquivo

Outras dicas

Se você estiver usando o IIS 7.5 ou posterior, poderá gerar a chave da máquina do IIS e salvá -la diretamente no seu web.config, dentro do fazendas da web, basta copiar o novo web.config para cada servidor.

  1. Open IIS Gerente.
  2. Se você precisar gerar e salvar o MachineKey para todos os seus aplicativos, selecione o nome do servidor no painel esquerdo, nesse caso, você estará modificando o arquivo root web.config (que é colocado na pasta .NET Framework). Se sua intenção é criar o MachineKey para um site / aplicativo específico, selecione o site / aplicativo no painel esquerdo. Nesse caso, você estará modificando o web.config arquivo do seu aplicativo.
  3. Clique duas vezes no ícone da chave da máquina nas configurações do ASP.NET no painel do meio:
  4. A seção MachineKey será lida no seu arquivo de configuração e será mostrada na interface do usuário. Se você não configurou uma chave de máquina específica e é gerada automaticamente, verá as seguintes opções:
  5. Agora você pode clicar em gerar teclas no painel direito para gerar trapaceiros aleatórios. Quando você clica em aplicar, todas as configurações serão salvas no web.config Arquivo.

Detalhes completos podem ser vistos @ Maneira mais fácil de gerar Machinekey - Dicas e truques: ASP.NET, IIS e .NET Development…

Certifique -se de aprender com o preenchimento de vulnerabilidade Oracle Asp.net Isso acabou de acontecer (você aplicou o patch, certo? ...) e use seções protegidas para criptografar a chave da máquina e qualquer outra configuração sensível.

Uma opção alternativa é defini -lo no nível da máquina Web.config, portanto, nem está na pasta do site.

Para gerar, faça -o exatamente como o artigo vinculado na resposta de David.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top