Como alterar o provedor de criptografia de senha do IIS Express Virtual Directory?

1

No Visual Studio 2012, estou trabalhando em um aplicativo ASP.NET MVC que requer um diretório virtual no diretório principal do aplicativo chamado "Shared". Isso acontece de apontar para um caminho UNC, portanto, também preciso especificar o nome de usuário & senha para acessar o caminho com.

Estou fazendo isso com o seguinte comando:

C:\Program Files\IIS Express> AppCmd.exe SET VDir /username:"DOMAIN\user" /password:"Password"

Mas quando executo o aplicativo, recebo o seguinte erro de configuração ao tentar acessar o diretório virtual compartilhado:

Failed to decrypt attribute 'password' because the keyset does not exist

A tela de erro, em seguida, destaca o elemento <virtualDirectory> correspondente no meu arquivo applicationHost.config :

<virtualDirectory path="/Shared" physicalPath="\MyNAS\MyUNCPath\Shared" userName="DOMAIN\user" password="[enc:RsaProtectedConfigurationProvider:ALONGENCRYPTIONSTRINGISHERE==:enc]" />

Agora, tenho andado pesquisando loucamente por algumas horas, e tenho visto vários comentários indicando que o tipo de criptografia padrão (correto?) para a minha senha nesse cenário deve ser "AesProvider" e não "RsaProtectedConfigurationProvider". Mas parece não haver nenhuma maneira de declarar explicitamente o provedor de criptografia para usar ao definir a senha.

Caso seja útil, a lista de provedores no meu applicationHost.config se parece com isso:

<configProtectedData>
    <providers>
        <add name="IISWASOnlyRsaProvider" type="" description="Uses RsaCryptoServiceProvider to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useMachineContainer="true" useOAEP="false" />
        <add name="AesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisConfigurationKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="ALONGENCRYPTIONKEYSTRINGISHERE" />
        <add name="IISWASOnlyAesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="ANOTHERENCRYPTIONKEYSTRINGISHERE" />
    </providers>
</configProtectedData>

Meu instinto diz que há algum erro de configuração aqui, mas não tenho idéia de como identificar e corrigir o problema. Alguma idéia?

    
por Brian Lacy 16.01.2014 / 19:11

0 respostas