Ответ 1
Шаг 1 Создание пары ключей RSA
aspnet_regiis -pc yourkey -exp
Шаг2 Экспортируйте ключ в файл XML
aspnet_regiis -px yourkey keyfile.xml -pri
для каждой машины
Шаг 3 Импортируйте свой контейнер
aspnet_regiis -pi yourkey keyfile.xml (see step 2)
для каждой машины
Шаг 4 Редактировать machine.config(канонический путь C:\Windows\Microsoft.NET\Framework [64 | 32]\v [Версия]\Конфигурация)
добавьте в раздел configProtectedDatastrong > этот ниже элемент и установите defaultProvider = "YourProvider"
<add name="YourProvider"
type="System.Configuration.RsaProtectedConfigurationProvider,System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
description="Uses RsaCryptoServiceProvider to encrypt and decrypt for my infrastucture"
keyContainerName="yourkey"
cspProviderName=""
useMachineContainer="true"
useOAEP="false" />
Затем вы можете зашифровать на машине и вставить в другое, помните, что должны предоставлять привилегии пользователям с
aspnet_regiis -pa yourkey [DOMAIN\USER]
Группа администраторов уже авторизована.
Для получения дополнительной информации http://msdn.microsoft.com/en-us/library/yxw286t2(v=vs.90).aspx
конечно, эти шаги можно поместить в файл powershell/batch
Другой способ шифрования секции connectionString по коду
var connectionStrings = ConfigurationManager.GetSection("connectionStrings")
if(!section.SectionInformation.IsProtected)
connectionStrings.SectionInformation.ProtectSection("YourProvider");
В подключенном и клиент-серверном сценарии я предлагаю вам решение, которое я принял в широкой сети, - это не распространять строку подключения в app.config, а требовать информацию о соединении в службе, которая может быть веб-службой или служба RESTful после аутентификации пользователя.
Таким образом, на этапе больше o меньше
- Аутентификация пользователя
- Требовать информацию о соединении в службе с именем пользователя в качестве параметра (протокол HTTPS)
- строка с возвратом службы
- Приложение подключится к DB
С помощью этого решения вы можете выбрать, к какому серверу подключается пользователь, если у вас есть региональный сервер или сервер
Надеюсь, вам будет полезно