Как зайти в Даркнет?!
25th January, 01:11
5
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
893
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
912
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Тестирование кода .NET в средах частичного доверия
Я хочу проверить поведение определенного фрагмента кода .NET в среде частичного доверия. Каков самый быстрый способ настроить это? Не стесняйтесь предположить, что я (и другие читатели) всего CAS нуб.
@Nick: Спасибо за ответ. Увы, рассматриваемый инструмент явно предназначен для неуправляемого кода. Я не сказал "managed" в своем вопросе и не должен был предполагать, что люди будут выводить его из тега ".NET".
Это отличный вопрос, особенно с точки зрения TDD и проверки кода при различных сценариях доверия.
Я думаю, что то, как я бы подошел к этому, было бы чем-то вроде -
Создайте AppDomain в моем коде TDD, используя перегрузку AppDomain.CreateDomain(), которая позволяет вам передать PermissionSet. PermissionSet будет сконструирован в соответствии с различными сценариями доверия, которые вы хотите протестировать.
Загрузите тестируемую логику assembly в домен приложения
Создание экземпляров типов / методов вызова и т.д. в домене приложения, ловушка исключений безопасности
Что-то вроде этого. У меня еще не было времени собрать доказательства своей концепции.
Используйте средство проверки приложений Microsoft.
AppVerifier помогает определить:
- Когда приложение использует APIs правильно: (Небезопасно TerminateThread APIs., Правильное использование локального хранилища потоков (TLS) APIs., o правильное использование манипуляций с виртуальным пространством (например, VirtualAlloc, MapViewOfFile).
- Скрывает ли приложение нарушения доступа с помощью структурированной обработки исключений.
- Пытается ли приложение использовать недопустимые дескрипторы.
- Есть ли повреждения памяти или проблемы в куче.
- Работает ли приложение без памяти при низком уровне ресурсов.
- Происходит ли правильное использование критических разделов.
- Будет ли приложение, запущенное в административной среде, хорошо работать в среде с меньшими привилегиями.
- Есть ли потенциальные проблемы, когда приложение работает от имени ограниченного пользователя.
- Существуют ли неинициализированные переменные в будущих вызовах функций в контексте потока.
Вы должны посмотреть на инструмент настройки .NET Framework. Он находится в .NET SDK, и вы можете найти инструкции по его запуску здесь... http://msdn.microsoft.com/en-us/library/2bc0cxhc.aspx
В разделе Политика безопасности среды выполнения вы найдете 3 уровня политики: корпоративный, машинный и пользовательский. Если вы детализируете компьютер или пользователя, вы найдете определения групп кода и наборов разрешений . Когда вы говорите, что хотите протестировать некоторый код .NET в среде частичного доверия, я предполагаю, что вы захотите протестировать против одного из стандартных наборов разрешений, уже определенных, таких как интернет . Необходимо определить группу кода , соответствующую вашему приложению (или определенным сборкам), и назначить выбранный набор разрешений этой группе кода .
Вы также можете определить свои собственные пользовательские наборы разрешений , но давайте пока оставим это простым.
Выберите, хотите ли вы, чтобы ваша новая группа кода существовала на уровне компьютера или только для вашей учетной записи пользователя, и детализируйте уровень политики компьютера или пользователя соответственно. Вы увидите кодовую группу под названием _All _ Code_ . Создайте дочернюю группу кода внутри этой группы, щелкнув правой кнопкой мыши и выбрав создать...
Дайте ему имя, скажем PartialTrustGroup , а затем нажмите кнопку Далее .
Вы должны указать условие членства для этой группы, и существуют различные типы. Мне нравится создавать на своем компьютере определенную папку с именем PartialTrust , а затем создавать соответствующее условие членства URL. Итак, мой URL выглядит так... file://c:/users/martin/documents/partialtrust/*
* - Это подстановочный знак, чтобы поймать любой assembly ниже этого пути. нажимать далее .
Теперь вы можете выбрать набор разрешений для своей новой группы кода. А пока выбери интернет . Это довольно ограничительный набор, похожий на песочницу Java applet. Нажмите кнопку Далее и готово .
Теперь щелкните правой кнопкой мыши на новой группе кода и выберите пункт Свойства. На вкладке Общие убедитесь, что выбран самый верхний checkbox, а затем щелкните OK.
Теперь к любым сборкам .NET, загруженным из расположения ниже указанного вами URL, будет применен набор разрешений Интернета . Ожидайте получить некоторые SecurityExceptions, если вы не написали свой код, чтобы тщательно соблюдать сокращенный набор разрешений.
Извините, это слишком длинное описание. Это действительно намного проще, чем кажется.
Я только что опубликовал статью под названием частичное тестирование доверия с xUnit.net в своем блоге. В нем подробно описана платформа xUnit.net-based, которую мы используем в команде Entity Framework для выполнения кода под средним доверием.
Вот пример его использования.
public class SomeTests : MarshalByRefObject
{
[PartialTrustFact]
public void Partial_trust_test1()
{
// Runs in medium trust
}
}
// Or...
[PartialTrustFixture]
public class MoreTests : MarshalByRefObject
{
[Fact]
public void Another_partial_trust_test()
{
// Runs in medium trust
}
}