Зашифруйте и сохраните пароль в файле web.config - PullRequest
3 голосов
/ 09 сентября 2011

В моем файле web.config содержится следующая информация.

<appSettings>
<add key="AdminUsername" value="User1"/>
<add key="AdminPassword" value="Password1"/>
</appSettings>

как зашифровать и сохранить?как расшифровать и использовать?

Ответы [ 2 ]

2 голосов
/ 09 сентября 2011

Пожалуйста, обратитесь к статье - http://msdn.microsoft.com/en-us/library/k6h9cz8h%28v=vs.80%29.aspx

Команда:

aspnet_regiis.exe -pe "appSettings" -site "MySharePoint" -app "/ "

, где MySharePoint является виртуальным каталогом.Файл web.config также должен находиться внутри каталога.

1 голос
/ 09 сентября 2011

Недостатком шифрования разделов конфигурации с использованием aspnet_regiis или эквивалентных API является то, что он шифрует целые разделы.

Хорошо с точки зрения безопасности, но администратору становится сложнее просматривать другие неконфиденциальные данные конфигурации в том же разделе. appSettings - это раздел, который администратор часто захочет просматривать.

Один из вариантов - поместить свои учетные данные в другой раздел (например, создать фиктивную строку подключения в разделе <connectionStrings>) и зашифровать только этот раздел:

<connectionStrings>
   ...
   <add key="AdminCredentials" 
        providerName="" 
        connectionString="Username=...;Password=..." />
</connectionStrings>

Вам, конечно, придется написать код для анализа фиктивной строки соединения (String.Split) и извлечения учетных данных. Что-то вроде следующего (для простоты опущена обработка ошибок):

string s = ConfigurationManager.ConnectionStrings["AdminCredentials"].ConnectionString;
string[] tokens = s.Split(';');
string userName = tokens[0].Split('=')[1];
string password = tokens[1].Split('=')[1];
...

Делая это, вы можете оставить раздел appSettings незашифрованным.

...