В любой из этих схем шифрование выполняется совершенно незаметно. Когда вы получаете параметр настройки из зашифрованного раздела, ASP.NET автоматически выполняет расшифровку и возвращает вашему коду простой текст (при условии доступности требуемого ключа). Точно так же, если вы модифицируете, значение программно и сохраняете его, шифрование выполняется автоматически. Однако вы не сможете редактировать этот раздел файла web.config вручную. Хотя вы по-прежнему можете использовать WAT, соответствующую оснастку IIS или свой собственный специальный код. Когда вы используете конфигурационный API, шаги шифрования и расшифровки выполняются автоматически при производстве чтения или записи в защищенный раздел.

Шифрование программным путем

Чтобы разрешить шифрование программным путем, вам нужно извлечь соответствующий объект ConfigurationSection.SectionInformation, а затем вызвать метод ProtectSection(). Любые существующие данные зашифровываются на этом этапе, и любые производимые вами с этого момента изменения шифруются автоматически. Если вы хотите отключить шифрование, вы просто используете соответствующий метод UnprotectSection().

Далее показан пример того, как зашифровывается раздел приложения, если он не зашифрован, или отменяется шифрование, если он зашифрован:

Configuration config = WebConfigurationManager.OpenWebConfiguration(
   Request.ApplicationPath);
ConfigurationSection appSettings = config.GetSection("appSettings");
if (appSettings.SectionInformation.IsProtected)
{
  appSettings.SectionInformation.UnprotectSection();
}
else
{
  appSettings.SectionInformation.ProtectSection(
    "DataProtectionConfigurationProvider");
}
config.Save()

Низке представлен фрагмент раздела <appSettings>:

<appSettings configProtectionProvider="DataProtectionConfigurationProvider">
<EncryptedData>
<CipherData>
<CipherValue>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAVxTTPiokbEiAPBrJEPLE6AQAAAACAA
AAAAADZgAAqAAAABAAAACcVeYk0oFA3IEv1J1ParhAAAAAAASAAACgAAAAEAAAAKHyY3llFAOHz
r7YsrazVssgAQAAC1BNbBngB2G+cO34hesOAd61oSPyXHphR9L6C7bv6jpNsM8R0i7kgsl+yvUZ
K9DGwi+KUosqo7YBJdDYLm70AWXiadZefPXsgtYp1GaGIWY+/LAwI9hDI2Wb713tR6phDmbYfax
bKUoKxPalMSRqUM35JcFvzAipqOZkWAqF1MhXv9ALiqEF/iMgmrzzLBD/oqxcPMZSw7HuxTF9T+
mQa6SmDrYShlRngy4pDF30cfmY4UfCPfg337jRUWFvJnoVa3HNIHig5bn+OjeookqFtBHOMJtQ3
7faLe+2ZkJm9DiywMlaBTgqDifGGNWOaSN1L4OLG3Skb0GAijRv2rjephFJFOW9R3YaTXAWNzEf
hJHbiX6nIyxYJVBpVRjNfBVvFAAAAHtg8uqi+wwnvy2bwlW1POmLuRhC</CipherValue>
</CipherData>
</EncryptedData>
</appSettings>

Обратите внимание на то, что вы не можете ничего сказать о зашифрованных данных, включая количество строк, ключевые имена параметров настройки или их типы данных.

предыдущая    следующая страница   оглавление

233

Hosted by uCoz