Как изменить поставщика шифрования паролей IIS Express Virtual Directory?
В Visual Studio 2012 я работаю над приложением ASP.NET MVC, для которого требуется виртуальный каталог в главном каталоге приложения под названием "Shared". Это указывает на путь UNC, поэтому мне нужно также указать имя пользователя и пароль для доступа к пути.
Я делаю это с помощью следующей команды:
C:\Program Files\IIS Express> AppCmd.exe SET VDir /username:"DOMAIN\user" /password:"Password"
Но когда я запускаю приложение, я получаю следующую ошибку конфигурации при попытке доступа к виртуальному каталогу Shared:
Failed to decrypt attribute 'password' because the keyset does not exist
Экран ошибки затем выделяет соответствующий <virtualDirectory>
элемент в моем applicationHost.config
файл:
<virtualDirectory path="/Shared" physicalPath="\\MyNAS\MyUNCPath\Shared" userName="DOMAIN\user" password="[enc:RsaProtectedConfigurationProvider:ALONGENCRYPTIONSTRINGISHERE==:enc]" />
Теперь я безумно гуглял в течение нескольких часов, и я видел несколько комментариев, указывающих, что тип шифрования по умолчанию (правильный?) Для моего пароля в этом сценарии должен быть "AesProvider", а не "RsaProtectedConfigurationProvider". Но, похоже, нет никакого способа явно объявить поставщика шифрования, который будет использоваться при установке пароля.
В случае, если это полезно, список поставщиков в моем applicationHost.config
выглядит так:
<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>
Моя интуиция говорит, что здесь какая-то неверная конфигурация, но я не знаю, как определить и устранить проблему. Есть идеи?