Симон Робинсон - C# для профессионалов. Том II

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.
Описание книги "C# для профессионалов. Том II"
Описание и краткое содержание "C# для профессионалов. Том II" читать бесплатно онлайн.
Платформа .NET предлагает новую среду, в которой можно разрабатывать практически любое приложение, действующее под управлением Windows, а язык C# — новый язык программирования, созданный специально для работы с .NET.
В этой книге представлены все основные концепции языка C# и платформы .NET. Полностью описывается синтаксис C#, приводятся примеры построения различных типов приложений с использованием C# — создание приложений и служб Windows, приложений и служб WWW при помощи ASP.NET, а также элементов управления Windows и WWW Рассматриваются общие библиотеки классов .NET, в частности, доступ к данным с помощью ADO.NET и доступ к службе Active Directory с применением классов DirectoryServices.
Эта книга предназначена для опытных разработчиков, возможно, имеющих опыт программирования на VB, C++ или Java, но не использовавших ранее в своей работе язык C# и платформу .NET. Программистам, применяющим современные технологии, книга даст полное представление о том, как писать программы на C# для платформы .NET.
• Все особенности языка C#
• C# и объектно-ориентированное программирование
• Приложения и службы Windows
• Создание web-страниц и web-служб с помощью ASP NET
• Сборки .NET
• Доступ к данным при помощи ADO NET
• Создание распределённых приложений с помощью NET Remoting
• Интеграция с COM, COM+ и службой Active Directory
В Windows 2000 файлы, которые хранят политику безопасности расположены в следующих местах:
Конфигурация политики предприятия
C:\WinNT\Microsoft.NET\Framework\v1.0.xxxx\Config\enterprise.config
Конфигурация политики машины
C:\WinNT\Microsoft.NET\Framework\v1.0.xxxx\Config\security.config
Конфигурация политики пользователя
%USERPROFILE%\application data\Microsoft\CLR security config\vxx.xx\security.config
Номер версии, отмеченный несколькими 'x', будет меняться в зависимости от версии .NET Framework, установленной на машине. При необходимости можно вручную редактировать эти конфигурационные файлы, например, если администратору нужно сконфигурировать политику для пользователя не регистрируясь в системе со своей учетной записью. Однако в общем рекомендуется использовать caspol.exe или подключаемый модуль ММС для управления политикой системы безопасности.
Простой пример
Создадим небольшое приложение, обращающееся к локальному диску, поведение которого требует тщательного управления. Приложение относится к C# Windows Forms с окном списка и кнопкой. Если нажать на кнопку, то окно списка заполняется из файла с именем animals.txt в корне диска C:\:
Приложение создается с помощью Visual Studio.NET, единственными изменениями в нем являются добавления к форме окна списка и кнопки Load Data, а также подключение к кнопке события, что выглядит следующим образом.
// Пример из SecurityAppl
private void button1_Click(object sender, System.EventArgs e) {
StreamReader stream = File.OpenText(@"C:\animals.txt");
String str;
while ((str = stream.ReadLine()) != null) {
listBox1.Items.Add(str);
}
}
Метод открывает простой текстовый файл из корня диска C:\, который содержит список животных на отдельных строках, и загружает каждую строку в переменную типа string, которая затем используется для создания каждого элемента в окне списка.
Если выполнить приложение на локальной машине и нажать кнопку, то мы увидим загруженные из корня диска C:\ данные, выведенные в окне списка, как и ожидалось. Неявно среда выполнения предоставила сборке полномочие, которое необходимо для выполнения, доступа к интерфейсу пользователя и чтения данных с локального диска:
Вспомним, что полномочия группы кода в зоне интранет являются более строгими, чем на локальной машине, в частности, они не разрешают доступ к локальному диску (за исключением папки, из которой выполняется приложение). Если снова выполнить приложение, но в этот раз с общего сетевого диска, оно будет выполняться так же, как и раньше, поскольку ему предоставлены полномочия для выполнения и доступа к интерфейсу пользователя. Однако, если теперь нажать кнопку Load Data на форме, будет порождаться исключение безопасности:
В тексте сообщения исключения упоминается объект System.Security.Permissions.FileIOPermission. Он является полномочием, не предоставленным приложению и запрошенным классом из Framework, который используется для загрузки данных из файла на локальном диске.
По умолчанию группе кода Intranet предоставляется множество полномочий LocalIntranet. Изменим с помощью следующей команды это множество полномочий на FullTrust, чтобы любой код из зоны интранет мог выполняться полностью без ограничений.
caspol.exe -chggroup 1.2 FullTrust
Если теперь снова выполнить приложение с общего сетевого диска и нажать на кнопку, мы увидим, что окно списка заполняется из файла в корне диска C:\ и исключения не возникают.
В подобных сценариях, где используются ресурсы, управляемые полномочиями, рекомендуется расширять код, чтобы исключения безопасности перехватывались и приложение могло постепенно уменьшать свою деятельность. Например, в данном приложении можно добавить блок try-catch вокруг кода доступа к файлу и, если порождается исключение SecurityException, то в окне списка выводится строка "Permission denied accessing file" ("Полномочия не разрешают доступ к файлу"):
// Код из SecurityАрр1
private void button1_Click(object sender, System.EventArgs e) {
try {
StreamReader din = File.OpenText(@"C:\animals.txt");
String str;
while((str = din.ReadLine() != null) {
listBox1.Items.Add(str);
}
} catch (SecurityException exception) {
listBox1.Items.Add("Permission denied accessing file");
}
}
В действительности, если необходимо выполнить определенное приложение с общего сетевого диска, то скорее всего будет выбрано решение, которое не открывает клиентскую машину всему коду в интранет. Вместо этого будут использоваться группы кода и условия членства для строгого контроля требования приложения с учетом его расположения в интранет, строгого имени или сертификата, подтверждающего идентичность издателя.
Управление группами кода и полномочиями
В управляемой безопасности .NET, если сборка отказывает с исключением безопасности, обычно имеются три пути продолжения работы:
□ Смягчить политику полномочий
□ Переместить сборку
□ Применить для сборки строгое имя
Принимая решения такого рода, нужно брать в расчет уровень надежности сборки.
Включение и выключение системы безопасности
По умолчанию система безопасности .NET обычно включена. Если по какой-то причине необходимо ее выключить, это делается таким образом:
caspol.exe -security off
Чтобы снова включить систему безопасности, используйте команду:
caspol.exe -security on
Риски безопасности, присущие открытию машины при отключении системы безопасности, для нас означают, что систему безопасности необходимо отключать только для тестирования и отладки. Необходимо знать, что приведенная выше команда не требует административных привилегий, т.е. любой пользователь (или вирус) может отключить систему безопасности .NET. Поэтому настоятельно рекомендуется включать систему безопасности Windows, чтобы защититься против злонамеренного или необдуманного использования.
Восстановление политики системы безопасности
Если необходимо восстановить конфигурацию системы безопасности в ее первоначальном состоянии, можно ввести команду:
caspol.exe -reset
Эта команда переводит политику системы безопасности в состояние установки по умолчанию.
Создание группы кода
Можно создавать свои собственные группы кода и затем применять к ним определенные полномочия. Например, мы определяем, что хотим доверять любому коду с web-сайта www.wrox.com и предоставляем ему полный доступ к системе (не доверяя коду с любого другого web-сайта). Прежде всего необходимо получить числовую метку группы кода, в которой будет находиться новая группа кода.
caspol.exe -listgroups
Эта команда выводит приблизительно:
Code Groups:
1. All code: Nothing
1.1. Zone — MyComputer: FullTrust
1.2. Zone — Intranet: LocalIntranet
1.2.1. All code: Same site Socket and Web.
1.2.2. All code: Same directory FileIO — Read, PathDiscovery
1.3. Zone - Internet: Internet
1.3.1. All code: Same site Socket and Web.
1.4. Zone - Untrusted: Nothing
1.5. Zone — Trusted: Internet
1.5.1. All code: Same site Socket and Web.
…
Используя тот факт, что Zone: Internet помечена как 1.3, вводим команду:
caspol.exe -addgroup 1.3 -site www.wrox.com FullTrust
Отметим, что эта команда будет спрашивать подтверждение при попытке явно изменить политику системы безопасности на машине. Если теперь снова выполнить команду caspol.exe -listgroups, можно увидеть, что была добавлена новая группа кода, которой присвоено FullTrust.
Code Groups:
1. All code: Nothing
1.1. Zone - MyComputer: FullTrust
1.2. Zone — Intranet: LocalIntranet
1.2.1. All code: Same site Socket and Web.
1.2.2. All code: Same directory FileIO - Read, PathDiscovery
1.3. Zone — Internet: Internet
1.3.1. All code: Same site Socket and Web.
1.3.2. Site - www.wrox.com: FullTrust
1.4. Zone — Untrusted: Nothing
1.5. Zone - Trusted: Internet
1.5.1. All code: Same site Socket and Web.
1.5.2.
…
В другом примере предположим, что мы хотим создать группу кода в группе кода Intranet (1.2), которая предоставляет FullTrust всем приложениям, выполняющимся с определенного общего сетевого диска:
caspol.exe -addgroup 1.2 -url file:///\\intranetserver/sharename/*FullTrust
Удаление группы кода
Чтобы удалить созданную группу кода, можно ввести команду:
caspol.exe -remgroup 1.3.2
Она будет запрашивать подтверждение того, что вы хотите изменить политику системы безопасности, и если ответить положительно, она сообщит, что группа удалена.
Необходимо знать, что нельзя удалить группу кода All Code, но можно удалить группы кода на уровень ниже, включая группы для Internet, MyComputer и LocalIntranet.
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!
Похожие книги на "C# для профессионалов. Том II"
Книги похожие на "C# для профессионалов. Том II" читать онлайн или скачать бесплатно полные версии.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Отзывы о "Симон Робинсон - C# для профессионалов. Том II"
Отзывы читателей о книге "C# для профессионалов. Том II", комментарии и мнения людей о произведении.