Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Шифрование с помощью приложенияСодержание книги Поиск на нашем сайте Замечание! В примерах секция connectionStrings зашифрована с помощью этого метода, файл ключей CustomKeys.xml находится в папке проекта, импортировать его перед запуском проекта будет хорошей идеей. Замечание! aspnet_regiis не умеет подгружать сборки самостоятельно, поэтому при попытке зашифровать собственную секцию этим способом будет выдано сообщение об ошибке: Encrypting configuration section... Ошибка при создании обработчика раздела конфигурации для socialSettings: Невозможно загрузить файл или сборку "Test" или один из зависимых от них компонентов. Не удается найти указанный файл. (C:ProjectsTestTestweb.config line 8)
Данная проблема решается по следующему алгоритму:
1) Скопировать dll-файл в папку, где находится aspnet_regiis 2) Или добавить сборку в GAC (для этого сборка должна обладать строгим именем — strongly named assemblies): gacutil –i C:projectsTestTestbinDebugTest.dll Для шифрования на стороне приложения используем класс WebConfigurationManager.
Пример класса для шифрования секции connectionStrings:
namespace TsSoft.WebSamples.Helpers { using System; using System.Configuration; using System.Web.Configuration;
public class EncryptHelper { private Configuration config; private string pathWebConfig;
public EncryptHelper(string pathWebConfig = "~/") { this.pathWebConfig = pathWebConfig; config = WebConfigurationManager.OpenWebConfiguration(pathWebConfig); }
public string PathWebConfig { get { return pathWebConfig; } set { pathWebConfig = value; config = WebConfigurationManager.OpenWebConfiguration(pathWebConfig); } }
public void Encrypt(string encryptSection, string providerName = "RsaProtectedConfigurationProvider") { var section = GetSection(encryptSection); if (section.SectionInformation.IsProtected == true) { throw new Exception("Section " + encryptSection + " already encrypted."); } section.SectionInformation.ProtectSection(providerName); config.Save(); }
public void Decrypt(string decryptSection) { var section = GetSection(decryptSection); if (section.SectionInformation.IsProtected == false) { throw new Exception("Section " + decryptSection + " already decrypted."); } section.SectionInformation.UnprotectSection(); config.Save(); }
private ConfigurationSection GetSection(string sectionName) { if (string.IsNullOrWhiteSpace(sectionName)) { throw new Exception("Section name is null"); } var section = config.GetSection(sectionName); if (section == null) { throw new Exception("Section " + sectionName + " is not defined. Check your Web.config"); } if (section.ElementInformation.IsLocked) { throw new Exception("Section " + sectionName + " is locked."); } return section; } } } Использование:
var encryptHelper = new EncryptHelper(); encryptHelper.Encrypt("connectionStrings"); encryptHelper.Decrypt("connectionStrings");
ЗАДАНИЕ: 1) Осуществить изучение материала. 2) Ответить на следующие вопросы (письменно): a) Для чего необходимо производить шифрование Web.config. b) Перечислить основные контейнеры используемые при шифровании. c) В каких случаях шифрование не целесообразно. Источники: 1) [Электронный ресурс]: Метанит, режим доступа: https://metanit.com/ 2) [Электронный ресурс]: Docs.microsoft, режим доступа: https://docs.microsoft.com/ru-ru/xamarin/get-started/what-is-xamarin 3) [Электронный ресурс]: TS SOFT, режим доступа: http://ts-soft.ru/blog/
|
||
|
Последнее изменение этой страницы: 2024-06-17; просмотров: 51; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.198 (0.005 с.) |