Какво е силно име възли, и как да ги готвя

Затова силно име възли (наричан SNA), или как тя е прехвърлена на името на MSDN - силна име сглобяване.

В CLR, има два вида изгражда: силна наречени възли и слабо-наречени възли (наричани WNA). Първите се различава от втората от наличието на съставно уникален идентификатор, състоящ се от името на сглобяване, номер на версията, информация за Регионални и езикови опции, публичен ключ (хеш, който се генерира на базата на публичния ключ). Той е този идентификатор осигурява глобален уникалност на събранието.

Има доста логичен въпрос: "Защо ми е да използва тези силни име възли, защото обикновено ми .dll така се справят със задачите?"

Отговорът се крие в задачите, които сте задали за монтаж. Виждам три начина за използване на СНС:

  • SNA уникалност е гарантирана чрез използването на уникални ключови двойки. Никой няма да бъде в състояние да създаде един комплект. Това го прави отличен инструмент за кандидатстване за сигурност SNA прави.
  • Уникално име ограничава използването на по-новата версия на събранието т.е. SNA гарантира, че никой друг не може да създаде следващата версия на системата.
  • Уникално име осигурява надежден контрол на почтеност. Един успешен резултат при изпитване на .NET Framework сигурност гарантира, че съдържанието на събранието не е било променяно след неговото образуване.

Естествено тези три точки Описание възможности SNA не е ограничено, но те ми се струват от съществено значение.

И това, което е вътре?

Нека разгледаме по-подробно SNA. Сигурен съм, че често са изпълнени следните вписвания в конфигурационните файлове:

Както написах в началото, всеки SNA събрание посочи четири peremetrami:

име на сбора - System.Web.Mvc

Версия - 2.0.0.0

Информация за опциите Регионални и езикови - неутрален

Hash - 31BF3856AD364E35

име на сбора - всеки текстов низ отговаря на правилата за именуване на файлове на Windows. Версия - е версия на системата. Той се представя в стандартен формат:

MAJOR.MINOR [.build [.revision]]

Информация за Регионални и езикови опции ви позволява да определите вашата монтаж към определена култура. По принцип няма строго необходимост от уточняване на определена култура, не е необходимо, тъй като това може да доведе до проблеми със съвместимостта на културите при използване на събранието.

Hash изгради тя всъщност е хеш (Hi Cap), генерирани на базата на публичния ключ, която се съдържа в така наречените ключови файла. Този файл се генерира от комунални услуги са включени в пакета на .Net Framework - SN.exe. Файлът съдържа два ключа в двоичен формат: публични и частни ключове, и е задължително условие за създаването на СНС.

Най-простият вариант на създаването на следния ключ: командния ред Visual Studio (работи като основа) следната команда:

В резултат на това Бодьо mykeys.snk генерира файл съдържа два ключа. За да видите съдържанието, първо трябва да се извлече публичния ключ (използва се за забавяне на подписването), и то само за да се покаже:

Какво е силно име възли, и как да ги готвя

Както можете да видите публичен ключ достатъчно дълго, поради което може да е трудно, когато се занимават с него. Ето защо, при създаването на SNA използва публичен ключ знак.

Какво да се прави?

А сега да разгледаме директно процеса на създаване на SNA.

За това ние използваме по-рано създаден ключ файл и евентуално създаване на сглобяване.

Има два начина за създаване на SNA: командния ред и командата:

CSC / keyfile: [ключ име на файл] .snk [монтажни файлове]

Или се възползвайте от Visual Studio:

Какво е силно име възли, и как да ги готвя

Както и да е, събранието ще бъде подписан с помощта на ключ файл и да получи статут на силна име.

Процесът на сглобяване на абонамент красиво описан М. Фаулър в книгата си CLR чрез C #:

Какво е силно име възли, и как да ги готвя

Използването на SNA осигурява значителни предимства в проектирането на възли, които се използват от повече от едно приложение. Също така трябва да се отбележи SNA предимства пред WNA от гледна точка на сигурността.

В тази статия аз не съм повдигна въпроса за използването на SNA в GAC (Global събрание Cache). Може би това ще бъде темата на следващата статия.