Я не уверен, где PowerShell фигурирует в вашем вопросе. Если вы используете встроенную команду, например aspnet_regiis.exe, для шифрования раздела конфигурации, то ваш сайт IIS не знает, что этот раздел зашифрован.
Я не уверен, как размещение чего-либо в machine.config сделает приложение более безопасным, поскольку все, что его читает прозрачно, будет работать для любого приложения на этой машине.
Конфигурация .net работает так: у вас есть файл some.exe и файл some.exe.config. При развертывании some.exe вы можете (нужно?) Включить шаг для шифрования конфиденциальных разделов. Приложение по-прежнему просто считывает данные, не зная, что они зашифрованы.
Но опять же, это приложение, а не PowerShell, которое считывает зашифрованное значение.
Вот часть сценария, который я использую, который шифрует / дешифрует разделы. Используйте осторожно, поскольку зашифрованные данные можно расшифровать только на одном компьютере (и, вероятно, в той же ОС). YMMV
$appConfig = "your.exe"
$sectionName = "appSettings"
$dataProtectionProvider = "DataProtectionConfigurationProvider"
if (-not (Test-Path $path) ) { throw "Unable to find $($appConfig) $($path)" }
$configuration = [System.Configuration.ConfigurationManager]::OpenExeConfiguration($path)
$section = $configuration.GetSection($sectionName)
if (-not $section.SectionInformation.IsProtected) {
$section.SectionInformation.ProtectSection($dataProtectionProvider)
$section.SectionInformation.ForceSave = $true
$configuration.Save([System.Configuration.ConfigurationSaveMode]::Full)
Write-Information -Message "$($sectionName) in $($appConfig) has been protected from casual users"
}
else {
Write-Information -Message "$($sectionName) in $($appConfig) is already protected"
$section.SectionInformation.UnprotectSection()
$section.SectionInformation.ForceSave = $true
$configuration.Save([System.Configuration.ConfigurationSaveMode]::Full)
Write-Information -Message "$($sectionName) in $($appConfig) protection removed"
}
Это фрагмент полного скрипта для шифрования / дешифрования разделов конфигурации.
person
No Refunds No Returns
schedule
09.07.2018