В книге «C# in Depth 2nd Edition» книга Джона Скита, которую я только что прочитал до конца части 2, в 7.7.3 упоминается, что InternalsVisibleTo
также может использоваться со подписанными сборками. На данный момент я вообще не использовал подписи. Проблема безопасности для выпущенных двоичных файлов на самом деле весьма критична, поэтому я планирую полностью удалить атрибут для сборок release, используя тест переменной препроцессора.InternalsVisibleTo, подписание и юнит-тесты, как сделать его практичным?
Просто для интереса, как было бы целесообразно использовать подписанные сборки и InternalsVisibleTo
? Чтобы использовать InternalsVisibleTo
для указания подписанной сборки друга, мне нужно указать его открытый ключ. У меня есть это только после компиляции сборки друга, которая имеет зависимость от тестируемой сборки (динамическая сборка и снятие нагрузки остались в стороне, что бы раздувало кодирование и читаемость). Это звучит как проблема с куриным яйцом, требующая проверки бутстрапа сборки. Я могу представить себе некоторые трюки с MSBuild и скрипты для автоматизации этого. Есть ли более практичный способ сделать это?
В случае остается настолько утомительно, я буду придерживаться моей первой идеи сбрасывания Unit Testing для выпуска сборки (что несколько неудовлетворителен как тонкие вопросы, синхронизации можно оставить непроверенным ...)
Если вы не создадите новый файл ключа во время сборки процесса (очень маловероятно), открытый ключ будет постоянное значение ... –
Почему вы думаете, что это проблема безопасности? Сильное имя не касается безопасности. Для пользователя тривиально отключить проверку сильного имени и использовать свою сборку, как вы не намерены. – Daniel
Итак, Даниил, я не должен об этом беспокоиться, если я хорошо тебя понимаю и могу оставить сборки неподписанными. Это просто гарантирует пользователю, что происхождение программного обеспечения безопасно, если надежное имя можно доверять. Если сборки развертываются в «безопасной» среде, например внутри нашей компании, мне не нужно беспокоиться о подписании. Правильно ли это утверждение? – jdehaan