Предыдущая учетная запись, которая использовалась для входа в файл конфигурации, который позволял запускать наш сайт, была удалена. Я абсолютно ничего не знаю о IIS и искал некоторое представление о том, как зашифровать свой пароль, как это делал предыдущий пользователь. Я считаю, что это тип шифрования <add name="IISWASOnlyRsaProvider..."
. Позже в коде я предоставил свое собственное имя пользователя и пароль, которые позволили ему снова запустить:
virtualDirectory path="/" physicalPath="C:\path\to" userName="" password="" />
<virtualDirectory path="/Pictures" physicalPath="C:\Shares\Public\pictures" userName="" password="" />
Предыдущий пароль начинался с enc:AesProvider
и сопровождался зашифрованным паролем. Есть ли способ сгенерировать мой собственный зашифрованный пароль для размещения в указанном выше месте?
Откройте виртуальный каталог в диспетчере IIS, нажмите Advanced Settings...
на панели действий справа. При входе Physical Path Credentials
нажмите на ...
кнопку и установите пользователя и пароль. Он будет сохранен в файле конфигурации.
Обратите внимание, что, хотя шифрование самого пароля является надежным, каждый администратор на машине может легко его просмотреть.
Пример для vDir foo
в корне Default Web Site
:
Get-WebConfiguration -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.applicationHost/sites/site[@name='Default Web Site']/application[@Path='/']/virtualDirectory[@path='/foo']" | select username, password
При этом используется тот же API, который IIS использует для получения имени пользователя и пароля из конфигурации. В то время как в конфигурации пароль зашифрован, при чтении через API он выходит в виде открытого текста.
Вы можете использовать команду aspnet_regiis.exe, чтобы зашифровать требуемый раздел (разделы) файла конфигурации и предоставить доступ к требуемым учетным записям, которые должны его прочитать.
Как альтернатива Метод Питера с Powershell, вы также можете использовать appcmd
получить пароль
%systemroot%\system32\inetsrv\APPCMD list vdirs mySite/Pictures /text:password
или установить новый
%systemroot%\system32\inetsrv\APPCMD set vdir mySite/Pictures /password:"hunter2"
Это может не работать для некоторых методов шифрования. Это зависит от того, какие учетные записи имеют доступ к ключам.