Ce este ansambluri puternice pe nume, și cum să le gătească

Prin urmare, ansambluri puternic-numit (în continuare SNA) sau modul în care aceasta a fost transferată în numele MSDN - asamblare puternic-numit.

În CLR, există două tipuri de ansambluri: construiește puternic denumite și ansambluri slab-numite (denumite în continuare WNA). Primele diferă de cea de a doua prin prezența unui identificator unic compozit format din nume de asamblare, numărul de versiune, informații cu privire la limbi, cheie publică (hash care este generat pe baza cheii publice) și regionale. Este acest identificator asigură unicitatea globală a ansamblului.

Există o întrebare destul de logică: „De ce am folosi aceste ansambluri puternice pe nume, pentru că .dll mea obișnuită astfel încât să facă față sarcinilor?“

Răspunsul se află în sarcinile pe care le stabiliți pentru adunare. Văd trei moduri de a utiliza SCN:

  • SNA unicitate este garantată prin utilizarea de perechi de chei unice. Nimeni nu va fi capabil de a crea același ansamblu. Acest lucru face un instrument excelent pentru aplicații de securitate SNA face.
  • Un nume unic restricționează utilizarea versiunea mai nouă a ansamblului respectiv SNA asigură faptul că nimeni altcineva nu poate crea următoarea versiune a ansamblului.
  • Un nume unic asigură un control fiabil al integrității. Un rezultat de succes la testarea securității .NET Framework asigură faptul că conținutul ansamblului nu a fost modificat după formarea sa.

În mod firesc aceste trei puncte Descriere oportunități SNA nu este limitat, dar ele mi se par esențiale.

Și ce e înăuntru?

Să ne gândim mai detaliat SNA. Sunt sigur că ați întâlnit de multe ori următoarele intrări în fișierele de configurare:

Așa cum am scris la început, orice ansamblu de SNA identificat patru peremetrami:

nume de asamblare - System.Web.Mvc

Versiune - 2.0.0.0

Informații despre Opțiuni regionale și lingvistice - neutru

Hash - 31BF3856AD364E35

nume de asamblare - orice șir de text care respectă regulile de denumire a fișierelor pe Windows. Versiunea - este o versiune a ansamblului. Acesta este prezentat într-un format standard:

MAJOR.MINOR [.build [.revision]]

Informații despre Opțiuni regionale și lingvistice vă permite să specificați de asamblare la o anumită cultură. În principiu, nu este nevoie să se specifice strict cultură special, nu este necesară, deoarece acest lucru poate duce la probleme de compatibilitate de cultură atunci când se utilizează ansamblul.

Hash construi este de fapt un hash (Hi Cap), generat pe baza cheii publice, cuprinse în așa-numitul dosar cheie. Acest fișier este generat de utilități sunt incluse în pachetul de .Net Framework - SN.exe. Fișierul conține două chei în format binar: chei publice și private, și este indispensabilă pentru crearea SNA.

Cea mai simplă versiune a crearea următorului cheie: linia de comandă Visual Studio (rulat ca root) următoarea comandă:

Ca rezultat, Bodø mykeys.snk fișierul generat conține două chei. Pentru a vedea conținutul, trebuie să extrageți mai întâi cheia publică (folosită pentru semnarea cu întârziere), și apoi doar să-l arate:

Ce este ansambluri puternice pe nume, și cum să le gătească

După cum puteți vedea cheia publică suficient de mult timp, motiv pentru care poate fi dificil atunci când se ocupă cu el. Prin urmare, atunci când se creează SNA utilizează token-cheie publică.

Ce să fac?

Acum, ia în considerare în mod direct procesul de creare a SNA.

Pentru aceasta vom folosi fișierul cheie creat anterior și, opțional, a crea un ansamblu.

Există două moduri de a crea un SNA: linia de comandă și comanda:

csc / keyfile: [nume fișier cheie] .snk [fișiere de asamblare]

Sau să profite de Visual Studio:

Ce este ansambluri puternice pe nume, și cum să le gătească

Oricum, ansamblul va fi semnat utilizând fișierul cheie și pentru a obține statutul de puternic-numit.

Procesul de asamblare a abonamentului descris mai frumos M. Fowler, în cartea sa CLR prin intermediul C #:

Ce este ansambluri puternice pe nume, și cum să le gătească

Utilizarea SNA oferă avantaje semnificative în proiectarea ansamblurilor, care sunt utilizate de mai multe aplicații. De asemenea, trebuie remarcat avantaje SNA peste IAN în ceea ce privește securitatea.

În acest articol nu am ridicat problema utilizării SNA în GAC (Global Adunarea Cache). Poate că acest lucru va fi subiectul articolului următor.