Как зашифровать и расшифровать пользовательские файлы конфигурации (файлы XML) в C # - PullRequest
0 голосов
/ 28 января 2010

Я новичок на форумах.

Я только начал работать над C # и веб-сервисами в течение последних 3 месяцев, и у меня есть замечательный веб-сервис, готовящийся к работе. К сожалению, существует специальный файл конфигурации (на самом деле XML-файл), который мы используем для хранения строк подключения.

Мы не хотим использовать раздел строки соединения web.config, потому что класс и связанный с ним xml-файл, который был написан собственными силами, будут использоваться другими проектами, а не только веб-сервисами. Проблема в том, что мне нужно зашифровать имя пользователя и пароли XML-файла «конфигурации» и расшифровать его в моем коде C #.

Достаточно сказать, что XML-файл имеет следующую структуру ...

<?xml version='1.0'?>
<!--
TEST ENVIRONMENT
-->
<thesystem>
   <connectionString string="Data Source=( DESCRIPTION = ( ADDRESS_LIST = ( ADDRESS = ( PROTOCOL = TCP )( HOST = {0} )( PORT = {1} ) ) )( CONNECT_DATA = ( SERVER = DEDICATED )( SERVICE_NAME = {2} ) ) ); User Id= {3}; Password = {4};"/>
   <oracleDetails>
     <site name="thesite">
       <schema dbname="thedb"    dbHost="99.99.99.99" dbPort="9999" dbServiceName="SYSTEMSITE" dbUsername="xxx" dbPassword="yyy"/>
     </site>
   </oracleDetails>
</thesystem>

Я посмотрел в Интернете и сумел «обмануть» способ шифрования файла с помощью aspnet_regiis.exe

есть:

C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727> aspnet_regiis -pef oracleDetails. -пров DataProtectionConfigurationProvider

Шифрование раздела конфигурации ... Преемник!

Я получил это для работы, переименовав тег и переименовав файл xml в web.config. Я обманул ASP.net, чтобы подумать, что я шифрую файл веб-конфигурации.

Теперь проблема в том, как мне расшифровать его в C #?

Я пытался использовать следующее ...

Configuration _myConfig = ConfigurationManager.OpenExeConfiguration("OURSYSTEM.config");

где OURSYSTEM.config - это файл XML выше.

Программа выдает ошибку о том, что не может найти файл. Кроме того, OpenExeConfiguration больше подходит для приложений Win с файлом app.config.

1 Ответ

0 голосов
/ 28 января 2010

После запуска aspnet_regiis -pef oracleDetails . -prov DataProtectionConfigurationProvider шифруется ли XML-файл конфигурации? Скорее всего, так и есть, проблема в том, что ваш ASP.Net не может его расшифровать, и это в конечном итоге является ключевой проблемой доступа. Убедитесь, что вы зашифровали его, используя учетные данные, к которым у пула приложений есть доступ. То есть. если пул приложений ASP запускается от имени пользователя foo, то вы должны запустить aspnet_regiis от имени того же пользователя.

...