Опубликован: 11.09.2006 | Доступ: свободный | Студентов: 7646 / 472 | Оценка: 4.26 / 3.45 | Длительность: 30:46:00
ISBN: 978-5-9556-0080-2
Лекция 10:

Безопасность Windows-форм

Тестирование безопасности доступа кода приложения. Утилита Caspol.exe

Утилита командной строки caspol.exe, поставляемая с .NET Framework, позволяет просматривать и манипулировать политикой безопасности. Файл утилиты располагается в каталоге С\WINDOWS\Microsoft.NET\Framework\ v1.1.4322\ CasPol.exe.

Утилита caspol.exe отображает всю доступную информацию об уровне безопасности, установленном по умолчанию (Machine). Эта информация включает в себя иерархию групп кода, название набора разрешений и имена сборок, использующих политику Full Trust.

Утилита caspol.exe имеет следующий синтаксис:

caspol <параметры> <аргументы>

В таблице 10.5 приводится список некоторых параметров утилиты.

Таблица 10.5. Некоторые парметры утилиты caspol.exe
Параметр Действие Примечания
-l Список (List) Вывод всей доступной информации об уровне безопасности, установленном по умолчанию
-lg Список групп кода (List Group Code) Вывод списка групп кода уровня безопасности, установленного по умолчанию
-lp Список наборов разрешений (List Permission Set) Вывод списка наборов разрешений
-ag Добавление группы кода (Add Code Group) Добавление новой группы кода в уровень безопасности
-url URL Использование сборкой URL в качестве условия принадлежности к группе
-n Название группы кода (Code Group Name) Задание имени для новой группы кода
-exclusive Установка флага Exclusive для уровня безопасности Используется для тестирования. Любая сборка, встретившая условие группы кода, получает соответствующий набор разрешений. Например, это может применяться для предотвращения автоматического назначения набора разрешений Full Trust
-cg Поменять группу кода (Change Code Group) Изменение существующей группы кода
-rg Удалить группу кода (Remove Code Group) Удаление существующей группы кода

Для работы с утилитой выбираем Пуск\Все программы\ Microsoft Visual Studio .NET 2003 \ Visual Studio .NET Tools \ Visual Studio .NET 2003 Command Prompt и в запустившейся командной строке вводим

caspol.exe

Появляется справка утилиты, которую затем можно снова вывести одной из команд

caspol –help
caspol -?
caspol /?

Для вывода информации о группах кода и наборов разрешений вводим

caspol -l

Для получения списка групп кода вводим

caspol -lg

Для просмотра списка наборов разрешений вводим

caspol –lp

Для сброса всех пользовательских настроек вводим

caspol –reset

По умолчанию весь код, запускающийся на локальной машине, получает набор разрешений полного доступа Full Trust. Нам может потребоваться, для тестовых целей, чтобы код выполнялся под другим набором разрешений. Самый простой способ сделать это — создать папку и настроить политику безопасности для причисления этой папки к другой зоне. Это делается следующим образом.

Создаем папку C:\testpermissions, затем в командной строке создаем новую группу разрешений:

сaspol –ag 1 –url file:///C:/testfolder/
* Internet -n test_permissions_group –exclusive on

Этот код добавляет новую группу кода test_permissions_group, условием вступления в которую является запуск из папки testpermissions. После этого копируем приложение в папку testpermissions и запускаем его с набором разрешений Internet.

Изменяем набор разрешений на Execution командой

Caspol –cg Test_Group Execution

Удаляем тестовую группу командой

Caspol –rg Test_Group

Ролевая безопасность

Ролевая модель безопасности использует данные пользователя в качестве источника информации. Как правило, эта информация состоит из имени и роли пользователя.

Ролевая модель безопасности в .NET Framework использует две концепции: личность (identity), представляющее собой имя пользователя, и его роль (principal).

.NET Framework позволяет разработчикам применять встроенный в Microsoft Windows набор ролей. Также вы можете задействовать и частный набор ролей.

Перед тем как использовать роль пользователя, нам необходимо проверить личность этого пользователя. Аутентификация — это обнаружение и проверка личности пользователя путем сравнения введенной пользователем информации с существующими данными. Например, при проверке электронной почты вы вводите имя пользователя и пароль. Сервер сверяет их со своими данными и, если они идентичны, открывает доступ к вашей почте.

Сегодня существует множество механизмов аутентификации пользователей. Некоторые из них могут использоваться в .NET Framework приложениях. В операционной системе Windows используется механизм Microsoft Passport.

После того как мы удостоверились в личности пользователя, он проходит авторизацию. Авторизация — это определение прав пользователя на выполнение тех или иных действий, после чего ему предоставляется возможность работы с определенными ресурсами.

Елена Дьяконова
Елена Дьяконова

При нажатии на Сумма в примере ArbitraryMethod из Лекция 7, VS 2013 выдается ошибка: 

Необработанное исключение типа "System.InvalidOperationException" в System.Windows.Forms.dll

Дополнительные сведения: Недопустимая операция в нескольких потоках: попытка доступа к элементу управления "lblResult" не из того потока, в котором он был создан.

Затем:

Необработанное исключение типа "System.InvalidOperationException" в mscorlib.dll

Дополнительные сведения: Для каждой асинхронной операции метод EndInvoke может вызываться только один раз.

Александр Сороколет
Александр Сороколет

Свойство WindowState формы blank Maximized. Не открывается почемуто на всё окно, а вот если последующую форму бланк открыть уже на макс открывается :-/