Шаг 1: Возьмите загружаемый файл url и настройте его с помощью NSURLSession
и его метода dataTaskWithUrl
.
Шаг 2: Интегрируйте метод NSURLSessionDelegate, NSURLSessionDataDelegate
в ваш контроллер.
Шаг 3: Возьмите две переменные CFAbsoluteTime
, которые хранят starTime и назначают CFAbsoluteTimeGetCurrent()
, а второй stopTime
в didReceiveData:
методе делегирования.
шаг 4: скорость счета, подобная этой
CFAbsoluteTime elapsedTime = stopTime - startTime;
float speedOfConnection = elapsedTime != 0 ? [data length] / (stopTime - startTime) / 1024.0 / 1024.0 : -1;
Если Ваша единственная цель состоит в том, чтобы мешать FxCop вопить на Вас, то Вы нашли лучшую практику.
лучшая практика для подписания Ваших блоков является чем-то, что абсолютно зависит от Ваших целей и потребностей. Нам было бы нужно больше информации как Ваше намеченное развертывание:
Обычно, Вы используете подписывание кода, чтобы проверить, что блоки прибыли из определенного надежного источника и не были изменены. , Таким образом, каждый с тем же ключом в порядке. Теперь то, как то доверие и идентификационные данные определяются, является другой историей.
ОБНОВЛЕНИЕ: то, Как это приносит пользу Вашим конечным пользователям, когда Вы развертываетесь по сети, - то, если Вы получили программное обеспечение, подписав сертификат от центра сертификации . Тогда, когда они загружают Ваши блоки, они могут проверить, что прибыли от Торговый центр программного обеспечения Domenic , и они не были изменены или повреждены по пути. Вы также захотите подписать установщик, когда он будет загружен. Это предотвращает предупреждение, что некоторый дисплей браузеров, что он был получен из неизвестного источника.
Примечание, Вы заплатите за программное обеспечение, подписывая сертификат. То, что Вы получаете, является центром сертификации, становятся доверяемой третьей стороной, которая проверяет, что Вы - то, кто Вы говорите, что Вы. Это работает из-за сети доверия, которое прослеживает его путь до корневого сертификата, который установлен в их операционной системе. Существует несколько центров сертификации для выбора из, но Вы захотите удостовериться, что они поддерживаются полностью сертификаты в целевой операционной системе.
Это помогает, потому что исполняемый файл ожидает сборку со строгим именем. Это останавливает любого злонамеренно занимающего место в другом блоке одно ваше. Также пользователь мог бы дать CAS блока разрешения на основе строгого имени.
я не думаю, что необходимо распределять .pfx файл, Вы бережно храните это для отставки блока.
Наиболее заметное отличие между и неподписанными блоками со знаком находится в приложении ClickOnce. Если Вы не подпишете его, то пользователи получат страшного "Неизвестного Издателя" предупреждение диалогового окна в первый раз, когда они запускают Ваше приложение. Если Вы подписали его с сертификат от доверяемых полномочий , то они видят диалоговое окно, это менее страшно. Насколько я знаю, подписываясь с сертификатом, который Вы генерируете сами, не влияет на "Неизвестного Издателя" предупреждение. Момент SSL от Comodo имеет примеры диалоговых окон.
существуют некоторые более тонкие различия. Необходимо подписать блок, прежде чем он сможет быть установлен в глобальном кэше сборок (GAC), где он может быть совместно использован несколькими приложениями. Подписание является неотъемлемой частью безопасности доступа к коду (CAS), но я не нашел никого, кто мог получить работу CAS. Я вполне уверен, что и GAC и CAS хорошо работают с сертификатами, которые Вы генерируете сами.
Подписание используется для однозначного определения блока. Больше деталей находится в Как к: Подпишите блок (Visual Studio) .
С точки зрения лучшей практики, хорошо использовать тот же ключ, пока блоки имеют различные имена.
важно держать Ваш файл PFX в секрете, поскольку это содержит закрытый ключ.
, Если тот ключ сделан доступным для других тогда, любой может подписать блоки или программы, которые подменяют Вами.
Для соединения имени с блоками (в глазах Windows) необходимо будет получить цифровой сертификат (часть файла PFX, содержащего имя) подписанный доверяемыми полномочиями.
На самом деле Вы получите новый сертификат, но с той же информацией.
необходимо будет заплатить за этот сертификат (вероятно, ежегодно), но центр сертификации будет эффективно ручаться за существование (после того, как Вы отправили факсом им копии своего паспорта или разрешения драйвера и внутреннего счета).